抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

各类“服务器推”技术原理与实例(Polling/COMET/SSE/WebSocket)

简单来讲

主要是4中方法: 轮询、COMET、SSE (Server-Sent Events)、WebSocket

轮询简单易实现,问题是连接数量多会挤爆服务器

COMET 包含两种: 基于HTTP的长轮询(long-polling)、基于iframe的长连接流(stream)模式

SSE (Server-Sent Events) 是HTML5标准中的一部分。其实现原理类似于我们在上一节中提到的基于iframe的长连接模式。
HTTP响应内容有一种特殊的content-type —— text/event-stream,该响应头标识了响应内容为事件流,客户端不会关闭连接,而是等待服务端不断得发送响应结果。
SSE规范比较简单,主要分为两个部分:浏览器中的EventSource对象,以及服务器端与浏览器端之间的通讯协议。

WebSocket与http协议一样都是基于TCP的。WebSocket其实不仅仅限于“服务器推”了,它是一个全双工的协议,适用于需要进行复杂双向数据通讯的场景。因此也有着更复杂的规范。

评论