20.IM通信

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 组件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章