什么是将用户映射到连接ID的最佳方式

时间:2012-08-08 17:51:42

标签: c# asp.net signalr

我想在连接到我的集线器类时将用户映射到连接ID,有效的策略是什么?我想将用户的个人资料与他的连接ID相关联,因此当我检查特定信号员组中的用户时,我可以轻松地为每个用户的个人资料信息

1 个答案:

答案 0 :(得分:4)

从技术上讲,如果你不担心保持状态,你可以用内存中的穷人ConcurrentDictionary<string, ConcurrentBag<string>>来解决这个问题,但我认为你试图比这更具可扩展性/容错性。

JabbR,它是SignalR框架的旗舰测试平台聊天应用程序,它将连接的客户端详细信息存储在其DB中的表中(恰好是SQL)。它具有单个ChatUser的映射 - &gt;到许多ChatClient实例(一对多)。这样,当逻辑用户登录时,它会在逻辑上知道该用户是谁,并且还可以确保它可以将正确的消息定向到用户当前可能已打开的所有已连接的客户端实例。 You can find that specific implementation here如果您有兴趣了解更多相关内容。