技术背景和目标
-
一个背景是基于http技术的web应用,服务器是被动发送数据,前提是客户端必须发送请求。浏览器并不知道服务端的信息何时会改变,为了模拟实时的信息交流,只能通过polling(轮询)技术不断刷新页面去获取数据;
-
目标是web应用数据通信的尽量保证高效性,实时性以及安全性
场景
web通信,浏览器和服务端的通信,思想也可以借鉴到任何系统通信中;
- long-polling:comet使用该技术,其他pull模式的消息系统也用到该技术做优化;
- WebSocket是HTML5出的协议,基于HTTP协议的一个持久化的协议。只需要建立一次HTTP连接,服务端会一直知道客户端的信息,主动推送信息给客户端。特定浏览器支持,适合高并发web场景。
优缺点
- long-polling:具有记忆功能的pull;优点:pull方式的优化,减少了不必要的空请求;缺点:客户端不好配置超时时间,如果配置需要和服务端协调?
polling需具备终止功能:如果客户端timeout内,未收到resp;客户端主动发起终止polling的请求,服务端收到终止请求后需要终止数据准备流程;
- 问题是polling终止也需要考虑服务端是否收到polling请求,若没收到,那么过一段时间仍然会把上次的计算结果推送