我使用 ASP.NET MVC 和 C#。我发现 SignalR 用于实时传输数据,但 signalR 有一些限制。
使用背板,最大消息吞吐量低于客户端直接与单个服务器节点对话时的最大消息吞吐量。那是因为背板将每条消息转发到每个节点,因此背板可能成为瓶颈。此限制是否存在问题取决于应用程序。例如,以下是一些典型的 SignalR 场景:
- 服务器广播(例如股票行情):背板在这种情况下工作得很好,因为服务器控制发送消息的速率。
- 客户端到客户端(例如,聊天):在这种情况下,如果消息数量随客户端数量增加,那么背板可能会成为瓶颈;也就是说,如果消息的速率随着更多客户端的加入而按比例增长。
- 高频实时(例如实时游戏):不建议在这种情况下使用背板。
我的项目需要高频实时(例如实时游戏)。
我也需要实时视频聊天
我的场景:
我有一个主服务器和多个从服务器,客户端连接到从服务器,从服务器连接到主服务器。
示例:服务器 Slave-1 和服务器 Slave-2 连接到主服务器,客户端 A 和客户端 B 连接到 Slave-1,客户端 C 和客户端 D 连接到 Slave-2,
客户端-A 发送消息或数据或与客户端-D 进行实时聊天
我怎样才能实现这个场景?
[更新-1]
如果我不使用 signalR 解决该问题,那么我应该使用什么?
[更新-2]
在我的场景中,主服务器就像一个路由器,从服务器就像一个交换机。客户端连接到交换机,交换机连接到路由器。如果客户端-A向客户端-C发送数据包,数据包应该被发送到路由器并且路由器处理数据包。超过2000个可能的从服务器数量和每个服务器的用户数量超过10,000。
谢谢。