网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

那么,Long-Polling、Websockets、Server-Sent Events(SSE)以及Comet到底是什么呢?

更新时间:2026年03月27日   作者:spoto   标签(Tag):
客户端与服务器端进行实时交互的方式有多种,比如长轮询、WebSocket、服务器发送事件以及Comet技术。下面将对这些方式进行详细的说明。长轮询:这是一种技术,即客户端向服务器请求信息,但并不期望立即得到回应。实际上,客户端会向服务器发送HTTP请求,然后保持连接开放状态,以便服务器能够稍后作出响应。 通过使用长轮询方式,服务器能够支持大约6个来自浏览器的并行连接。 与其他方法相比,这种负载均衡方式其实相当简单。 长轮询是一种最古老的数据传输方式,因此所有网页浏览器都支持这种方式。 虽然由于更新频率较低,该软件无法处理重新连接的情况。 长轮询方式对服务器的负担更大,但由于其在浏览器中的使用更为广泛,因此仍然被广泛采用。2. WebSockets:WebSocket是一种计算机通信协议,它允许我们通过单一的传输控制协议(TCP)连接实现全双工通信。 WebSocket协议使得网页浏览器与网页服务器之间的交互能够更加高效地进行,同时还能减少传输数据的开销。这样一来,就可以实现实时数据传输了。 这是通过定义一种标准方式来实现的:服务器可以在没有客户端主动请求的情况下,主动向客户端发送信息。同时,这种方式还允许消息在连接保持开放的状态下来回传递。 通过这种方式,客户端和服务器之间可以进行双向的通信,而不会出现任何问题。WebSockets在诸如Google Chrome、Opera、Edge、Firefox、Safari等网页浏览器中得到了广泛的应用。 WebSockets对浏览器的负担很小,它能够支持最多1024个并行连接。 它采用了复杂的负载均衡和代理技术。 它还支持检测客户端断开连接的情况,而这种情况在长轮询机制中是不存在的。不过,该机制并不提供重新连接的处理功能。3. 服务器发送的事件(Server-Sent Events, SSE):这是一种技术,它使得浏览器能够自动从任何使用HTTP连接的服务器那里获取更新。 这项技术是由WHATWG(Web超文本应用技术工作组)提出的。它首次被应用于Opera浏览器中,时间是在2006年。 这是一种标准,描述了在建立初始客户端连接之后,服务器如何与客户端进行数据传输的初始化操作。 他们通过名为 EventSource 的 JavaScript API,向客户端发送消息更新或持续更新的信息,从而提升不同浏览器之间的流媒体播放效果。SSE 仅被少数浏览器支持,比如 Mozilla、Chrome 和 Safari。 Internet Explorer和Edge仍然不支持这种技术。 此外,它还支持从浏览器中同时连接最多6台设备。 它支持便捷的负载均衡功能,同时还能处理因网络中断而导致的重新连接问题,这些功能都得到了 EventSource 的支持。4. 彗星:这是一种网络应用程序模型。在这种模型中,通过发送HTTPS请求,服务器可以将数据推送到客户端-服务器之间。 一种网络浏览器,该浏览器不会主动请求任何数据更新。 彗星还有许多其他名称,比如Ajax Push、Reverse Ajax等。 开发 Comet 的核心思想就是发起一个简单且规则的 HTTPS 请求,然后等待服务器不断返回数据。Web 服务器接收到新的请求后,会开始响应,但服务器不会停止响应。因此,浏览器会保持连接状态,继续等待新的数据。每当有新的数据到达时,服务器就会将其写入到响应流中。 服务器会在该更新信息的末尾发送一个唯一的字符串。 例如: “ThisCometMessageEnded”。 Comet通过提供双向通信功能,从而打破了页面间限制的束缚。 实现Comet的具体方法主要有两种:流式传输和长轮询。
  • I. 流媒体播放 –任何使用流式传输 Comet 的应用程序,都会从客户端浏览器到服务器之间建立一条永久性的连接,以便处理所有的 Comet 事件。流式传输 Comet 的技术包括:
    (a) Hidden iframe
    (b) XMLHttpRequest 
  • II. 长轮询 –实现长轮询的具体技术包括:
    (a) XMLHttpRequest long polling
    (b) Script tag long polling 
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

上一篇: 无线攻击

下一篇: 隐私浏览

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料