我使用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人。谢谢。