方法 :
Comet,SSE(服务器发送事件),Web Sockets
1.Comet
实现方式:长轮询和流;
长轮询:(断轮询的翻版,段轮询:不管数据有没有用,都直接返回)由页面发起一个到服务器的请求,然后服务器一直保持链接打开,知道有数据可发送。发送完毕,关闭链接,随机,页面又发起新请求。
HTTP流:浏览器向服务器发送一个请求,服务器保持链接打开,服务器周期性的向浏览器发送数据。在Firefox、safari、Opera、Chrome中通过监听readystatechange事件及检测readyState的值是否为3,就可以利用XHR的实现HTTP流。
2.SSE
是围绕只读Comet交互推出的API或者模式。
HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。