2

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

4

1 回答 1

4

从技术上讲,如果您不担心维护状态,则可以通过内存中的穷人来解决此问题ConcurrentDictionary<string, ConcurrentBag<string>>,但我认为您正在尝试比这更具可扩展性/容错性。

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

于 2012-08-08T22:04:06.483 回答