拉模式和推模式的区别:
拉模式的实现原理是客户端定时轮询服务端的接口,获取最新的数据。
但是数据更新频率低,则大多数请求是无效的。且在线用户数量多,则服务端的查询负载很高。其定时轮询拉取,无法满足时效性的要求。
推模式:
仅仅在数据更新时才需要推送。需要维护大量的在线长连接。数据更新后可以立即推送。
WebSocket协议与交互:
通讯流程:
传输原理:
- 协议升级后,继续复用HTTP的底层socket完成后续通讯
- message底层被切分成多个frame帧传输
- 编程的时候不需要关心frame,只操作message
- 框架底层完成tcp网络i/o,websocket协议解析,开发者不需要关心
基于WebSocket的推送:
- 浏览器支持的socket编程,轻松维持服务器的长连接
- 基于TCP可靠传输之上的协议,不需要开发者关心通讯细节
- 提供了高度抽象的编