Websocket--- long loop--ajax轮询,long poll 和 ajax轮询 的原理。
1,首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。
2,long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,服务端就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。
缺点:
从上面可以看出其实这两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性{服务端不能主动联系客户端,只能有客户端发起}
上面这两种都是非常消耗资源的;
Websocket
HTTP->Websocket,服务端可以主动推送信息给客户端。
只需要经过一次HTTP请求,就可以做到源源不断的信息传送了。(在程序设计中,这种设计叫做回调,即:你有信息了再来通知我
这样的协议解决了上面同步有延迟,而且还非常消耗资源的这种情况。
更好的节省服务器资源和带宽并达到实时通讯的目的