使用SignalR scaleout如何将消息从客户端广播到连接到我的背板的所有服务器?我认为它应该默认工作,但是只有一个服务器的集线器正在接收消息。
设置:我在负载均衡器后面有4个虚拟机,我正在使用SignalR和Redis背板。我有以下Hub:
public class ProgressHub : Hub
{
public void StartProcessing(string clientId)
{
// ...
}
}
在客户端,我使用以下方法调用此方法:
$.connection.hub.start().done(function() {
proghub.server.startProcessing(me.clientId);
});
我已在消息总线上启用跟踪,并在所有服务器上收到消息:
SignalR.ScaleoutMessageBus Information: 0 : OnReceived(0, 54, 1)
但是,仅在一台服务器上调用Hub方法。如何在所有服务器上执行此调用执行StartProcessing方法?
答案 0 :(得分:0)
这是不可能的。最好的方法是在服务器之间启用某种同步机制。由于Redis用作背板,因此它也可以用作这种机制。