.NET 5.0 中的 SignalR 未检测到突然断开连接

SignalR in .NET 5.0 not detecting abrupt disconnections

我是 运行 .NET 5.0 中的 SignalR Hub,位于 Docker 容器中。我正在为 .NET 5.0 使用内置的 SignalR 包。 它无法检测到突然断开连接。如果我指示 SignalR 从客户端断开连接,它会检测到断开连接,但如果我只是关闭浏览器,SignalR 不会检测到断开连接。

这是我用来检测断开连接的代码的功能等价物。

public override async Task OnDisconnectedAsync(Exception exception)
{
    var userId = Map.GetUserFromMapping(Context.ConnectionId
    Map.Unmap(userId, Context.ConnectionId);
    await base.OnDisconnectedAsync(exception);
}

我知道这个问题存在于 AspNetCore 2.1 和更早的版本中,但我知道这个问题应该在更高版本中得到修复。

为什么没有检测到突然断开连接?哪些因素 could/would 会对此产生影响?

解决了我自己的问题。我的设置退回到长轮询,它没有保持活动功能,因此不会检测断开连接。