次のメッセージ転送シナリオがあります
クライアント->SignalRを呼び出します->NServiceBusを呼び出します->メッセージを内部的に処理します->結果を使用してNServiceBusゲートウェイサービスを呼び出します->SignalRハブを呼び出します->結果を使用してクライアントを更新します。
SignalRとロングポーリングのどちらを使用するかを選択する際には、SignalRがスケーラブルかどうかを知る必要があります。そのため、宿題をしているときに、AzureServiceBusでSignalRに出くわしました。セットアップは、Global.asaxアプリケーションの起動時に行われます。
最終的には、NServiceBusハンドラー内からこれを実行できる必要があります。
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.Group(group).addMessage(message);
問題は、クライアントが接続されていたマシンとは別のマシンから(潜在的に)呼び出しているため、コンテキストがジャックアップされるかどうかです。
また、SignalR実装がトピックをシードするために使用するシャーディングスキーマは何ですか?N個のトピックを使用するように設定できることはわかっていますが、実際にどのメッセージがどのトピックに送信されるか、および外部の発信者PoVからのメッセージに関連するかどうかをどのように判断しますか。