由于各种原因,建立SignalR连接时,我将该ConnectionId存储在我的数据存储中。但是,如果SignalR重新启动,那些连接记录可能会成为孤立的。 (我也观察到行为,让我怀疑OnDisconnected()是否正确调用,虽然我不太确定这一点。)鉴于SignalR ConnectionId,我可以告诉该会话是否仍然连接?
但是,无论出于何种原因,我会定期结束记录在我的数据库中孤儿,我希望能够修剪这些,并删除任何实际连接不上的ConnectionID - 大概是通过让SignalR告诉我这个ConnectionID是否仍然与实时会话相关联。
我已经看过了SignalR的源代码,它并没有向我跳出如何最好地实现这一点。有没有合理的方法来做到这一点?
这基本上是我现在正在做的,但它似乎没有正常工作。也许98%的时间,但每隔一段时间,我会关闭我的开发机器上的所有浏览器,然后当我回到我的房间时,它会相信我的版本中仍然有某些东西'_connectedClients',即使一切都应该已被清除。尽管如此,我没有这方面的报道,所以对你们来说帮助不大。我会告诉你,如果我能弄清楚是什么触发它 - 或者如果(也许更可能)它是我身边的错误。 –
@N。 Taylor Mullen为什么你最后一次void返回bool值? –
@aliyouhannaei没有理由,只是一个失败的代码片段。只是更新了它。 –