【问题标题】:Signal R randomly loses connection to the server sideSignal R 随机失去与服务器端的连接
【发布时间】:2017-05-16 21:10:16
【问题描述】:

我们将 Signal R 与 ASE 中的 Azure Web 应用程序一起用于我们的实时 Web 应用程序。 我们注意到 Signal R 有时会以非特定模式失去与集线器的连接。 这发生在高流量时段和低流量时段,但我更感兴趣的是为什么我会在低流量时段发生这种情况。 注意:我们有一个所谓的“1 分钟自动刷新”,它由页面上的 JavaScript 触发。这似乎奏效了。

有人在使用 SignalR 时遇到过类似问题,如果是,您是如何解决的?

谢谢 (测试人员,不要太苛刻!lol)

【问题讨论】:

    标签: azure connection signalr


    【解决方案1】:

    我确实经历过这种情况,这让我发疯了。

    默认情况下,SignalR 客户端将在失去与其集线器的连接后尝试重新连接 20 秒。在没有成功重新连接的 20 秒后,JavaScript 客户端上会引发断开连接事件。断开连接后,客户端将放弃尝试重新连接并且连接已死。 This page 描述了 SignalR 生命周期事件,并提供了一些关于在引发断开事件后尝试重新连接的代码。

    现在说说为什么会这样。我注意到在某些应用程序中,应用程序池回收可能需要超过 20 秒的时间,这可能会导致断开连接事件。 JavaScript 客户端和 Hub 之间的网络连接中断持续超过 20 秒也可能导致此问题。最重要的是,事情可能会出错,超出您的控制范围,您无法围绕它们编写代码。因此,在 JavaScript 客户端收到断开连接的事件后尝试重新连接的逻辑就位。

    【讨论】:

    • 非常感谢您的评论 Rob,我们确实有重新连接的逻辑,但我们仍然遇到问题......我想这是其中一种情况,然后“底部最重要的是,事情可能会出错,超出你的控制范围,你无法围绕它们编写代码。”欢呼
    • 你在以后的版本中修复了吗?
    • 我们已经迁移到 Signal R netcore,这是一个完全不同的野兽。如果我开始一个新项目,我会仔细研究 Azure SignalR 服务,让 Microsoft 担心连接问题。
    猜你喜欢
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 2017-08-07
    • 2010-12-25
    • 2017-04-29
    相关资源
    最近更新 更多