计算和列出SignalR中的连接器

时间:2014-05-20 14:39:54

标签: c# signalr

根据the wisdom of StackOverflow,无法列出或检查已连接客户端的数量。但是,回复有点老了,我想知道它是否仍然有效。

它是服务器记录所有连接和断开连接的唯一选项吗? 是否至少有一些功能可以帮助我们检测断线?

1 个答案:

答案 0 :(得分:3)

绝对有办法。

很多人通过创建一个包含您定义的任何自定义用户对象的并发字典的单例类来处理此问题。如果在连接时将自定义用户对象添加到此词典并在断开连接时将其删除,则可以在字典中查询活动用户的数量。请记住,它可能不是第二个准确的,因为大约有30秒的“中止”窗口可能仍然有效,即使客户端不再是因为他们关闭了浏览器。

现在,SignalR中是否有任何真正的“硬烘焙”功能为您执行此操作?不是我知道,但我还没有详尽地研究过2.0。至于检测断线,它是相当强大的,如果没有检测到连接,它将删除所述的连接,让你保持在断开连接之上。

这里有一个很好的教程来描述这种方法:

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-server-broadcast-with-signalr-20