Signal R Websockets 和多节点服务器
Signal R Websockets and multi node servers
我正在将用户映射到如下所述的连接 link https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/mapping-users-to-connections 这样我就可以找到要向哪个用户发送消息。
我想知道是否需要任何额外的工作才能在多节点服务器/负载平衡上顺利运行。我在基础设施方面没有经验,但我假设如果有多个服务器启动,会有多个静态散列图存储用户到连接的映射 - 即每个服务器一个。
这是否意味着从浏览器连接到节点 A 的用户将无法与连接到节点 B 的用户通信?
如果是这种情况,我们将如何实现。
在同一个 link 中,就在简介部分的下方,它讨论了 4 种不同的映射方法:
- 用户 ID 提供商 (SignalR 2)
- In-memory 存储,如字典
- 每个用户的 SignalR 组
- 永久性外部存储,例如数据库 table 或 Azure table 存储
然后是 table 显示这些在不同情况下的工作原理。其中一种情况是“不止一台服务器”。
既然没有提到,那要看你用的是哪种映射方式了。
从那里,您可以在您注意到的相同 site 上查看“横向扩展”,根据您的需要,您可以采用多种方法。这是向客户端发送消息的地方,无论它们连接到哪个服务器。
我正在将用户映射到如下所述的连接 link https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/mapping-users-to-connections 这样我就可以找到要向哪个用户发送消息。
我想知道是否需要任何额外的工作才能在多节点服务器/负载平衡上顺利运行。我在基础设施方面没有经验,但我假设如果有多个服务器启动,会有多个静态散列图存储用户到连接的映射 - 即每个服务器一个。
这是否意味着从浏览器连接到节点 A 的用户将无法与连接到节点 B 的用户通信?
如果是这种情况,我们将如何实现。
在同一个 link 中,就在简介部分的下方,它讨论了 4 种不同的映射方法:
- 用户 ID 提供商 (SignalR 2)
- In-memory 存储,如字典
- 每个用户的 SignalR 组
- 永久性外部存储,例如数据库 table 或 Azure table 存储
然后是 table 显示这些在不同情况下的工作原理。其中一种情况是“不止一台服务器”。
既然没有提到,那要看你用的是哪种映射方式了。
从那里,您可以在您注意到的相同 site 上查看“横向扩展”,根据您的需要,您可以采用多种方法。这是向客户端发送消息的地方,无论它们连接到哪个服务器。