如何处理服务器上意外的客户端断开连接?

时间:2020-06-18 12:54:51

标签: c# asp.net-core signalr

我有一个AspNetCore 3.1服务器,许多WinForms客户端连接到其SignalR集线器。在我的中心中,我执行以下操作:

public override async Task OnConnectedAsync()
{
    await Groups.AddToGroupAsync(Context.ConnectionId, someConnectionInfo);
    await base.OnConnectedAsync();
}

public override async Task OnDisconnectedAsync(Exception exception)
{
    await Groups.RemoveFromGroupAsync(Context.ConnectionId, someConnectionInfo);
    await base.OnDisconnectedAsync(exception);
} 

在客户端,我根据需要将集线器连接称为ConnectDisconnect。在正常情况下,一切正常。

但是,如果客户端意外终止而又无法与集线器断开连接,会发生什么?

如果服务器通过执行以下操作来调用客户端方法:

await hubContext.Clients.All.ClientMethod();

All还将包含意外终止的客户端吗?有没有办法知道哪些客户端仍在连接?

0 个答案:

没有答案