【问题标题】:SignalR: How to reacquire client info after app pool recycleSignalR:如何在应用程序池回收后重新获取客户端信息
【发布时间】:2012-02-18 01:13:01
【问题描述】:

在连接时,我将 clientID 映射到我在静态变量中构建的其他客户端和订阅信息。这工作正常,直到应用程序池回收或我重新编译然后我丢失了我的映射。

应用程序池回收后客户端连接仍然存在,但我在 OnConnectAsync() 或 OnReceivedAsync() 方法中看不到任何内容。

我在 Firebug 中看到我的客户每 4 分钟提交一个新的 POST。是否有一些 SignalR 事件我可以覆盖以捕获传入的 POST 并为当前的持久连接重建我的客户端映射?

谢谢。

【问题讨论】:

    标签: signalr


    【解决方案1】:

    确保您使用的是 SignalR 0.4。您可以处理 OnReconnectedAsync。

    https://github.com/SignalR/SignalR/wiki/PersistentConnection

    免责声明:如果您将应用程序状态存储在静态变量中,它将永远无法在农场上横向扩展(但也许您不在乎)。

    【讨论】:

    • Redis 或 Mem 缓存的时间? ;-)
    • 这仍然与 1.1.2 相关吗?我们遇到 SignalR 无法在应用程序池回收中幸存的问题。
    • LongPolling 不会在应用程序池回收时引发服务器端重新连接,但信号器重新连接就好了。
    猜你喜欢
    • 2013-04-11
    • 2017-05-26
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2019-08-19
    相关资源
    最近更新 更多