SignalR 与背板的连接
SignalR connections with backplate
我们正在尝试扩展我们的环境。我正在使用一个 ConnectionMapper class 就像这里的那个: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 数据库?
这适用于 MVC 应用程序。
嗯,你不能在背板上使用连接映射器之类的东西。内存中映射的问题是,如果不使用数据库 table,您将无法在节点之间进行通信,但这也很痛苦(在数据库中查找每条发送的消息?)。
使用组会更好(即将公司 ABC 中的每个用户添加到 "ABC" 组 - 或者可能使用数据库 table 中的唯一 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 中描述的使用背板的限制。背板横向扩展很痛苦,因为它很有可能比单节点方案具有 较低的消息吞吐量 和 较高的延迟 ...游戏示例 - 让每个节点完全独立并引导用户到正确的节点可能会更好(因此节点 A 托管游戏 1 - 8,节点 B 托管游戏 9 - 16)
我们正在尝试扩展我们的环境。我正在使用一个 ConnectionMapper class 就像这里的那个: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 数据库?
这适用于 MVC 应用程序。
嗯,你不能在背板上使用连接映射器之类的东西。内存中映射的问题是,如果不使用数据库 table,您将无法在节点之间进行通信,但这也很痛苦(在数据库中查找每条发送的消息?)。
使用组会更好(即将公司 ABC 中的每个用户添加到 "ABC" 组 - 或者可能使用数据库 table 中的唯一 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 中描述的使用背板的限制。背板横向扩展很痛苦,因为它很有可能比单节点方案具有 较低的消息吞吐量 和 较高的延迟 ...游戏示例 - 让每个节点完全独立并引导用户到正确的节点可能会更好(因此节点 A 托管游戏 1 - 8,节点 B 托管游戏 9 - 16)