0

SignalR スケールアウトを使用して、クライアントからバックプレーンに接続されているすべてのサーバーにメッセージをブロードキャストするにはどうすればよいですか? デフォルトで動作するはずだと思っていましたが、メッセージを受信して​​いるのはサーバーのハブ 1 つだけです。

セットアップ: ロード バランサーの背後に 4 つの仮想マシンがあり、Redis バックプレーンで SignalR を使用しています。次のハブがあります。

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 メソッドは 1 つのサーバーでのみ呼び出されます。この呼び出しで、すべてのサーバーで StartProcessing メソッドを実行するにはどうすればよいですか?

4

1 に答える 1