gpt4 book ai didi

signalr - SignalR 内部如何工作?

转载 作者:行者123 更新时间:2023-12-02 02:22:44 27 4
gpt4 key购买 nike

谁能让我知道 SignalR 内部是如何以高级方式工作的?

我猜测它正在使用 Response.Flush 刷新数据,并且在客户端以一定的时间间隔发送 Ajax 请求。正确吗?

最佳答案

不,SignalR 是连接的抽象。它为您提供了通过该连接的两种编程模型(集线器和持久连接)。 SignalR 有一个传输的概念,每个传输决定如何发送/接收数据以及如何连接和断开连接。

SignalR 有一些内置的传输:

  1. WebSocket
  2. 服务器发送事件
  3. 永远的框架
  4. 长轮询

SignalR 尝试选择服务器和客户端支持的“最佳”连接(您也可以强制它使用特定的传输)。

这就是高水平。如果想了解每种传输方式是如何实现的,可以查看source code .

每种传输方式还有客户端代码: https://github.com/SignalR/SignalR/tree/master/src/Microsoft.AspNet.SignalR.Client.JS

如果您特别询问长轮询传输的工作原理:

它将 ajax 请求发送到异步等待信号响应的服务器。当有信号或请求超时时,它从服务器返回并发送另一个请求,该过程继续。 (我留下了一些关于客户端如何跟踪它所看到的内容的详细信息,以便它不会错过消息)

希望这能回答您的大部分问题。

关于signalr - SignalR 内部如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807066/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com