20
http协议特点 |
一次性的,非持久性的一个服务 |
Websocket协议的特点 |
持久化连接,是一种独立的,基于tcp的协议 会有一个属性upgrade在header头 基于websocket,我们可以实现客户端和服务端的双向通信。 Websocket协议的持久化连接比之前ajax轮询而建立的源源不断的http连接,更加节省宽带和服务器的资源
案例: 订单 -> 异步消息队列 -> 处理后的信息发送回给前台(可以通过websocket) |
|
Client -> server 1.连接请求信息(既是建立连接,也是请求信息)
Server->client 2.响应结果,返回数据
Websocket的作用就是让这部分数据可以持久化
Client->server 3.已接收,请关闭连接
Server->client 4.已关闭 |
websocket_server是在swoole_http_server基础之上做了协议解析
|
|
使用原生socket实现websocket |
|
Swoole的websocket |
几行代码就可以完成 用户连接标识,用来辨别客户端的身份 可以把fd缓存在redis中 |
websocket集成到框架中 |
|
1.路由设计 |
对应路由:
对应的测试控制器: |
2.路由解析 |
|
3.websocket服务设置 |
|
4.websocket服务 |
|
问题 |
1.发送的心跳包应该尽可能小 2.心跳的时间 延长
Heartbeat_check_interval 每隔多久轮询一次 Heartbeat_idle_time 最大允许的空闲时间
推荐使用 laravel_swoole 组件 |