【发布时间】:2014-09-12 17:32:42
【问题描述】:
我目前正在使用 SignalR (2.1) 集线器开发应用程序。
我有 1 个 WPF 客户端,另一个是 WCF 客户端。 一切正常,因为它们完美地传递了消息。
我现在面临的唯一问题是,当应用程序由于自动重启、WCF 服务器关闭等原因而关闭时,我注意到 OnDisconnected 根本没有被触发。超时是默认的 30 秒。即使经过 1 天(我试过),它也不会被调用。但是,超时适用于 Web 客户端。
它仅在我调用 hub.connection.stop() 时有效。
然而,当客户端是浏览器时,Ondisconnected 方法效果很好。
所以想问一下Signal R Hub端有没有办法可以检查客户端是否还在连接或者已经掉线(比如ping)?
【问题讨论】:
-
1) 您应该在 github 上为 .net signalr 客户端提交一个错误(或者他们可能已经有错误?)。 2)您可以轻松实现自己的ping机制,在客户端和集线器之间来回发送机制
-
好吧,我通读并注意到这段文字说“如果您的 Web 服务器停止工作或应用程序重新启动,则不会调用 OnDisconnected 方法。因此,您的数据存储库可能会有记录不再有效的连接 ID。”在asp.net/signalr/overview/signalr-20/hubs-api/…。因此,我知道他们知道这件事。但是,我的问题是,SignalR 集线器是否有任何内置方法可以通知连接是否已断开,而不是我每隔几秒钟 ping 一次。