有许多文章展示了如何使用 SignalR 进行自己的高级连接处理,例如关于“将 ASP.NET SignalR 连接映射到真实应用程序用户”的博客文章。
所有这些解决方案都依赖于 OnDisconnect 事件:
public override Task OnDisconnected()
{
SignalRConnectionManager.RemoveConnection(Context.ConnectionId);
return base.OnDisconnected();
}
只要您可以依赖 OnDisconnected 事件,它就可以工作。如果您的应用程序崩溃/重新启动或服务器重新启动,那么您将不会获得每个连接的 OnDisconnected 事件。
问题:我的数据库中有连接。我知道其中许多联系都是陈旧的。SignalR 中是否有可能找出连接是否过时?我试过
Clients.Client[StaleConnectionId]
希望在连接 ID 无效的情况下出现 null 或异常。
有什么建议么?