.net - SignalR 奇怪的重新连接模式

标签 .net asp.net-mvc signalr

我在非常特定的网络条件下使用 SignalR(一个疯狂的代理)。所以套接字根本不起作用,我必须使用长轮询。当我刷新页面时,它似乎工作了一段时间,但随后发生了第一次断开连接。我正在尝试在断开连接的事件和以下模式时自动重新连接:

  • 页面加载后,集线器在大约 110 秒后断开连接(默认超时)
  • 在第一次断开连接后重新启动集线器需要 3 个断开连接事件(因此它仅在第 4 次尝试连接)
  • 之后,它总是在第一次尝试时重新连接,但在大约 10-15 秒(不是 110 秒)后断开连接。所以看起来保持事件超时在这里以某种方式涉及(虽然它不是第一次尝试)。

  • 这种行为似乎很奇怪。我能做些什么来改善它吗?

    最佳答案

    假设 Understanding and Handling Connection Lifetime Events in SignalR 中提供的提示您可以在其中采用良好的解决方案来处理基于网络问题的连接生命周期。此外,在 SignalR 的问题中,我为您找到了以下解决方案,它也适用于长轮询。

    您可以设置KeepAlive ConfigurationManager 上的属性(property)SignalR 将在指定的时间间隔发送一个空数据帧(基于传输)以保持连接处于事件状态(查看 Allow host to specify keep alive times )。当前的超时机制使流协议(protocol)没有什么不同。

    关于.net - SignalR 奇怪的重新连接模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32269372/

    相关文章:

    c# - 我可以在方法范围内用 C# 或 VB.NET 创建别名吗?

    c# - 关于泛型和 IEnumerable 的方法重载解析

    .net - MemoryStream 使用导致内存不足异常

    asp.net - ViewModel 的列表在操作中为 null

    c# - WPF SignalR 服务器返回 HTTP 400 错误请求(主机地址无效)

    c# - 从 C# .NET 应用程序连接到 SAP Web 服务

    c# - ResouceManager 有时会错误地加载 ASP.Net MVC 资源文件

    asp.net - 如何限制 IIS 7 中网站的 CPU 使用率?

    c# - SignalR Core 无法从 JS 客户端连接

    asp.net-core - asp net core signalR java 客户端中的生命周期