Signal R Kestrel 断开连接事件

问题描述 投票:0回答:1

有这篇文章,但我无法评论或添加任何内容: 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 分钟,直到服务器释放断开连接事件(我有设备的数据库和字典清理事件,这表明服务器尚未处理断开连接事件)

asp.net-core signalr signalr-hub
1个回答
0
投票

我最近遇到了类似的问题。我的PC断网后,ondisconnectedasync方法在断网后没有及时触发

代码中的配置参数最终应该检测断开连接的行为,但这需要很长时间。

ConnectionHandlers 位于 SignalR 之下的一层。换句话说,任何 SignalR 功能(例如 AddSignalR)都不适用于 ConnectionHandler 的使用。

© www.soinside.com 2019 - 2024. All rights reserved.