SignalR与背板的连接

时间:2016-08-29 18:38:41

标签: c# .net asp.net-mvc-3 signalr signalr-hub

我们正试图扩大我们的环境。我正在使用类似于这里的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应用程序。

1 个答案:

答案 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)