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 メソッドを実行するにはどうすればよいですか?