我有一个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);
}
在客户端,我根据需要将集线器连接称为Connect
和Disconnect
。在正常情况下,一切正常。
但是,如果客户端意外终止而又无法与集线器断开连接,会发生什么?
如果服务器通过执行以下操作来调用客户端方法:
await hubContext.Clients.All.ClientMethod();
All
还将包含意外终止的客户端吗?有没有办法知道哪些客户端仍在连接?