我们正试图扩大我们的环境。我正在使用类似于这里的ConnectionMapper类:http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to-connections来保存连接列表。
如何在群集(2个节点)中完成此工作?我会实现背板吗? http://www.asp.net/signalr/overview/performance/scaleout-in-signalr
然后将连接映射移动到SQL DB?
这适用于MVC应用程序。
答案 0 :(得分:1)
嗯,你不能使用连接映射器和底板之类的东西。像这样的内存映射的问题是,如果不使用数据库表就无法在节点之间进行通信,但这也很痛苦(在数据库中查找发送的每条消息?)。
您可以通过使用组(即将公司ABC中的每个用户添加到“ABC”组)来做得更好 - 或者可以使用数据库表中的唯一ID(例如companyId)。一旦您使用组中的组然后你可以开始使用背板...
论坛文档:http://www.asp.net/signalr/overview/guide-to-the-api/working-with-groups
但是再次使用背板存在问题 - 即您希望使用背板实现什么目标?看一下SignalR所描述的http://www.asp.net/signalr/overview/performance/scaleout-in-signalr中使用背板的局限性。背板向外扩展是一种痛苦,因为它有可能比单个节点schenario具有更低的消息吞吐量和更高的延迟 ...在游戏的示例中 - 你可能最好让每个节点完全独立并引导用户到正确的节点(所以节点A主持游戏1-8,节点B主持游戏9-16)