有这篇文章,但我无法评论或添加任何内容: 76024866/signalr-hub-ondisconnectedasync-sometimes-takes-thirty-seconds-to-fire-but-ot
My signalR 严重依赖断开事件。
当我关闭我的 Xamarin 或 WPF 应用程序时,它通常会非常快速地触发断开连接。
但是:当我刚刚禁用我的 WIFI 时,由于某种原因它不会触发事件很多分钟。我知道这一点,因为我在数据库和字典对象中有客户端 ID。
客户端连接对象状态断开!!
在上面的文章中指出我应该添加
options.ServerTimeout,
但是在我所有更新的 Net core 7 中,我只能找到这些参数,但找不到 ServerTimeout
hubOptions.EnableDetailedErrors = true;
hubOptions.ClientTimeoutInterval = TimeSpan.FromSeconds(30);
hubOptions.HandshakeTimeout = TimeSpan.FromSeconds(15);
hubOptions.KeepAliveInterval = TimeSpan.FromSeconds(15);
任何人都可以帮助我理解,为什么需要长达 10 分钟,直到服务器释放断开连接事件(我有设备的数据库和字典清理事件,这表明服务器尚未处理断开连接事件)
我最近遇到了类似的问题。我的PC断网后,ondisconnectedasync方法在断网后没有及时触发
代码中的配置参数最终应该检测断开连接的行为,但这需要很长时间。
ConnectionHandlers 位于 SignalR 之下的一层。换句话说,任何 SignalR 功能(例如 AddSignalR)都不适用于 ConnectionHandler 的使用。