SignalR scaleout客户端到服务器广播

时间:2015-07-06 12:40:33

标签: c# .net signalr signalr-backplane

使用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方法?

1 个答案:

答案 0 :(得分:0)

这是不可能的。最好的方法是在服务器之间启用某种同步机制。由于Redis用作背板,因此它也可以用作这种机制。