使用curl_multi_exec并发请求外部接口
有时候在一个PHP方法中要多次调用外部的接口,为了优化代码,提高效率,我们不妨使用curl_multi_exec并发处理多个请求,这样可以明显地提高获取响应数据的速度,减少程序执行的时间,下面是一个实际运行的例子。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://xxxxx.xxx');//使用一个不存在的地址
curl_exec($ch);
此时会返回一个错误码:curl_errno($ch)
对应的使用$errlist[curl_errno($ch)]就能返回中文的错误说明
由于互联网的机制,在不使用 Websocket 的情况下,是不能够长时间与用户持续保持连接的。所以我这里打算使用 COOKIE 与数据库信息进行校验。
其中用户端储存的 Token 是经过 hash 加密过的数据,数据库存储的数据是不经过 hash 加密的原始数据。最终通过一系列计算后使用 PHP 自带的 hash 校验函数进行 Token 验证
JWT 的原理是,服务器认证以后,生成一个 JSON 对象。以后,用户与服务端通信的时候,都要发回这个 JSON 对象。服务器完全只靠这个对象认定用户身份。为了防止用户篡改数据,服务器在生成这个对象的时候,会加上签名并加密。
JWT 的最大缺点是,由于服务器不保存 session 状态,因此无法在使用过程中废止某个 token,或者更改 token 的权限。也就是说,一旦 JWT 签发了,在到期之前就会始终有效,除非服务器部署额外的逻辑。
也是由于这个原因,无法实现动态令牌效果,即在用户持续使用阶段不废止令牌,而在用户停止操作一段时间后废除令牌。
随着互联网和移动互联网的快速发展,网站和应用的用户量不断增加,用户数据的安全性和权限控制变得尤为重要。而传统的基于用户名和密码的鉴权方式在一定程度上存在安全风险和复杂性。而基于Token的鉴权机制,既安全又简单。
什么是Token鉴权机制?
Token鉴权机制是一种无状态的鉴权方式,用户登录认证成功后,后端服务器生成一个Token并返回给客户端。客户端每次请求都在请求头中携带Token,后端通过校验Token的合法性来鉴权,从而保证了用户的权限和安全性。
下面我们来手把手教你使用PHP实现基于Token的鉴权。
一般情况下,我们在项目中进行代码调试时,往往只会在逻辑中使用console.log进行控制台打印调试。
这种方式虽然比较常规直接,但是如果打印数据多了,就会导致你的控制台消息变得异常混乱。
所以,我们有了更好的选择,那就是console对象提供的其它API,来让我们能够更清晰的区分打印信息。
$a = 'aaaaaaaaaaa';
正常情况下,如果出现php和html混合输出的时候,我们一般这样写:
echo '<pre>输出变量a的值'.$a.'</pre>';
我们也可以这样写,就不用连字符了
echo "<pre>{$a}</pre>";
这里要注意,一定要使用双引号,如果使用单引号,则不会输出变量值
不用过多介绍,就是简单的遍历目录,列出子目录及目录下面的文件,需要的可以自己扩展
功能需求:通过设置一个websocket服务端与客户端连接,增加一个后端接口,当接口触发时,推送消息到客户端
客户端JS通过new WebSocket时,会在服务端完成握手。而php接口通过socket_create、socket_connect连接,不会完成握手,也不需要。所以通过传递参数 from 来判断是从客户端还是从接口传来的消息
(一)WebSocket数据的收发协议 首先,对于客户端向服务器发送数据,都是以数据帧形式传输
(一)什么是WebSocket?
WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。