16

我目前正在探索 SignalR,该技术支持传输(网络 wockets、长轮询、服务器发送事件和永久帧)。

我已经理解术语网络套接字和长轮询。但是什么是服务器发送事件和永久帧?

这四个有什么不同?

4

1 回答 1

20

SignalR 的传输和回退:

网络套接字 Full-duplex

Websocket 是一个基于单个 TCP 连接的全双工通信通道。当服务器和浏览器都支持时,它是在客户端和服务器之间建立真正持久的双向连接的唯一传输。

服务器发送事件 Simplex

也称为 EventSource 是一种技术,浏览器通过 HTTP 连接从服务器接收自动更新。Server-Sent Events EventSource API 被 W3C 标准化为 HTML5 的一部分。

永远的框架 One request -> One infinite response

Forever Frame 创建一个隐藏的 IFrame ,该 IFrame 向未完成的服务器上的端点发出请求。然后服务器不断向客户端发送脚本,该脚本立即执行,提供从服务器到客户端的单向实时连接。从客户端到服务器的连接使用从服务器到客户端连接的单独连接,并且像标准 HTTP 请求一样,为需要发送的每条数据创建一个新连接。

Ajax 长轮询 (One Request -> One Response [but delayed]) repeated

长轮询不会创建持久连接,而是使用保持打开状态的请求轮询服务器,直到服务器响应,此时连接关闭,并立即请求新连接。这可能会在连接重置时引入一些延迟。

更多信息:

https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/introduction-to-signalr https://en.wikipedia.org/wiki/Server-sent_events

于 2017-08-04T15:28:44.667 回答