Signalr 信号器如何在内部工作?
有人能让我知道Signal是如何以高水平的方式在内部工作的吗Signalr 信号器如何在内部工作?,signalr,Signalr,有人能让我知道Signal是如何以高水平的方式在内部工作的吗 我猜它正在使用Response.Flush刷新数据,并且在客户端,它正在以一定的间隔发送Ajax请求。是否正确?否,信号器是连接上的抽象。它在该连接上提供了两种编程模型(集线器和持久连接)。信号器有一个传输的概念,每个传输决定如何发送/接收数据以及如何连接和断开连接 信号机有一些内置的传输: 网袋 服务器发送事件 永久框架 长轮询 SignalR尝试选择服务器和客户端支持的“最佳”连接(您也可以强制它使用特定的传输) 这是高水平的。如
我猜它正在使用
Response.Flush
刷新数据,并且在客户端,它正在以一定的间隔发送Ajax请求。是否正确?否,信号器是连接上的抽象。它在该连接上提供了两种编程模型(集线器和持久连接)。信号器有一个传输的概念,每个传输决定如何发送/接收数据以及如何连接和断开连接
信号机有一些内置的传输:
希望这能回答你的大部分问题。@davidfowl已经回答了大部分问题。然而,提供有关传输行为差异的更多细节,特别是WebSocket和其他传输之间的差异;以下是一些要点
- WebSocket是在客户端和服务器之间建立真正持久的双向连接的唯一传输。但是,WebSocket仅受IIS 8或更高版本以及最新版本的Internet Explorer、Google Chrome和Mozilla Firefox的支持
- 虽然服务器发送事件、永久帧和长轮询,但这三种方式都遵循单向通信,并且受到大多数浏览器的支持