我目前正在探索 SignalR,该技术支持传输(网络 wockets、长轮询、服务器发送事件和永久帧)。
我已经理解术语网络套接字和长轮询。但是什么是服务器发送事件和永久帧?
这四个有什么不同?
我目前正在探索 SignalR,该技术支持传输(网络 wockets、长轮询、服务器发送事件和永久帧)。
我已经理解术语网络套接字和长轮询。但是什么是服务器发送事件和永久帧?
这四个有什么不同?
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