【问题标题】:How to delay call to OnDisconnected() in SignalR 1.0.0Alpha2如何在 SignalR 1.0.0Alpha2 中延迟对 OnDisconnected() 的调用
【发布时间】:2012-12-02 14:28:13
【问题描述】:

我目前正在使用 SignalR 1.0.0Alpha2。我已经覆盖了 OnDisconnected 方法(以前我通过实现 Disconnect() 实现了相同的功能)。但我面临的问题是,在刷新页面或断开连接时,会立即调用 OnDisconnected。我的理解是它应该在 20 秒后调用(假设 DisconnectTimeout 默认值为 20 秒。

对于我们应用程序的要求,我们希望在大约 30 秒后调用 OnDisconnected。我已经尝试按照文档并将 DisconnectTimeout 设置为更高的值,但这没有帮助。

回到 0.4.x 版本,我能够成功实现 DisconnectTimeout 并且延迟得到了尊重。但自 0.5.3 以来,我们没有看到这种行为。

我不确定我们做错了什么。我们只需要不要立即调用 OnDisconncted。

【问题讨论】:

    标签: signalr signalr-hub


    【解决方案1】:

    没有办法延迟 OnDisconnected。如果你想延迟运行你的逻辑,你总是可以做 Task.Delay 或 Thread.Sleep (如果你想阻塞)。

    【讨论】:

    • 当然谢谢。我目前正在使用 Thread.Sleep 和业务逻辑来确定会话是真的结束还是刚刚重新连接。但是,如果我说行为已从 DisconnectTimeout 用于延迟调用 Disconnect() 的 0.4.x 版本发生变化,我是否正确?
    • 哦,是的,它已经改变了。断开连接在 2 种情况下被调用。当浏览器关闭或 connection.Stop 被称为客户端时,它会立即被调用。当浏览器崩溃或客户端没有机会向客户端发送数据包而没有消失时,它最终会消失(DisconnectTimeout)。
    猜你喜欢
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    相关资源
    最近更新 更多