gpt4 book ai didi

c# - 即使 SignalR SelfHost 服务器上的连接未关闭,是否可能会触发 OnDisconnected 事件?

转载 作者:行者123 更新时间:2023-11-30 17:38:39 28 4
gpt4 key购买 nike

我们创建了一个自托管 SignalR 服务器,我们的 WPF 桌面应用程序正在连接到该服务器。我们只是在做登录-注销管理,一切都很简单而且有效。但是过了一段时间,通常是 2-3 小时,一半的客户从在线客户列表中消失了。

看起来,OnDisconnected 事件在服务器上触发以进行连接,即使它们没有关闭。在 OnDisconnected 事件之后,这些连接仍然可以发送和接收数据。

是否有任何情况导致连接未关闭时在服务器上触发 OnDisconnected 事件?

最佳答案

Is there any scenario that causes to OnDisconnected event triggered on server when connection is not closed?

是的。如果连接超时,首先断开连接然后重新连接(如果客户端没有明确关闭连接)。

public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
{
if (stopCalled)
{
Console.WriteLine(String.Format("Client {0} explicitly closed the connection.", Context.ConnectionId));
}
else
{
Console.WriteLine(String.Format("Client {0} timed out .", Context.ConnectionId));
}

return base.OnDisconnected();
}

如您所见。如果发生显式断开连接(stopCalled 为真),则客户端肯定断开连接并且不会发生重新连接。

如果客户端确实没有断开连接,断开连接后可能会像您的情况一样发生重新连接。

检查 here更多细节

关于c# - 即使 SignalR SelfHost 服务器上的连接未关闭,是否可能会触发 OnDisconnected 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448353/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com