如何在.Net中的websocket-sharp中水平缩放websocket

问题描述 投票:0回答:3

我们有需求,我需要将 websocket 服务扩展到 N 个节点。

我在 .Net 4.8 中使用 websocket-sharp 库。

大多数情况下我能够找到 javascript 的解决方案,但我需要 .Net 的解决方案。

提前致谢。

c# .net websocket
3个回答
2
投票

您需要一种方法让所有网络套接字服务器保持彼此同步。一旦您拥有多个服务器和负载平衡器,您的设备将连接到不同的服务器。保持所有内容同步的一种方法是使用 pub / sub(可能是 Redis pub / sub)

  1. 首先,您的设备应连接到服务器(在下面的示例中,它连接到服务器 2)
  2. 每个服务器都需要保留其连接设备的唯一列表
  3. 另一台设备连接并发送数据(由于负载均衡器,它很可能会连接到与先前设备不同的服务器,新设备在下面的示例中连接到服务器 1)
  4. 服务器1然后发送一个Pub到Redis,让每个服务器接收一个Sub。
  5. Pub / Sub 消息应包含其希望发送数据或响应的设备的唯一 ID。
  6. 每个服务器都会检查其唯一的已连接设备列表,以查看它是否是具有所请求的已连接设备的服务器
  7. 如果服务器是负责的服务器,那么它会向所需的设备发送消息。

enter image description here


0
投票

您能否提供有关当前问题的更多详细信息?可以连接到不同 Web 套接字服务器的不同 Web 套接字连接是否需要相互交互?水平扩展很可能是一个与语言无关的问题。


0
投票

这里有同样的问题,找不到代码示例来实现这个

© www.soinside.com 2019 - 2024. All rights reserved.