彻底理解Polling,Long-Polling,WebSock

2022-06-21  本文已影响0人  清风疏影月黄昏

Polling,Long-Polling,WebSocket,Server-Sent Events是四种比较流行的客户端与服务器间的通讯方式,比如:浏览器与服务器,智能设备与服务器等。下面我们先了解一下标准的Http协议通讯时序:

image.png
Ajax Polling

Polling技术被大多数Ajax应用使用,基本原理:客户端不停轮询服务端获取数据,如果没有数据也会返回一个空响应。时序如下:

轮询的问题在于客户端需要不停的请求服务端,导致一个结果就是很多请求的响应都是空的,导致大量http的无用开销

image.png
Http Long-polling

这是传统轮询技术的一种变体,允许服务器推送数据可用时向客户提供信息。使用长轮询,客户端与正常轮询一样从服务器请求信息,但使用期望服务器可能不会立即响应。这就是为什么这种技术有时被称为“挂起 GET”。

Long-Polling的生命周期如下:

WebSockets

WebSocket是在TCP之上建立了一个全双工通信通道,客户端跟服务器端可以在任何时刻发起通信。客户端通过websocket握手建立连接,一旦成功建立连接,客户端跟服务端可以在任何时候双向通信。Websocket协议使客户端与服务器端以低开销,近乎实时的方式通信。这可以通过提供标准化的服务器在不被客户端询问的情况下向浏览器发送内容的方式并允许在保持连接的同时来回传递消息。


image.png
Server-Sent Events

SSE 是一种通过 HTTP 为 Web 应用程序提供与从服务器到客户端的事件流的异步通信的技术。服务器可以向客户端发送非定向消息/事件,并且可以异步更新客户端。几乎所有浏览器都支持 SSE,除了 Internet Explorer :)

服务器发送事件 (SSE) 使服务器能够将消息从服务器发送到客户端,而无需任何轮询或长轮询

image.png
上一篇 下一篇

猜你喜欢

热点阅读