ワーカー ロールの多数のインスタンスと連携して動作する、Azure でホストされている Web アプリケーションがあります。現在、Web アプリは、ワーカーが取得できるように Azure キューにメッセージを配置することで、これらのワーカーに作業を渡します。ワーカーは、メッセージを「フィードバック」キューに入れることで、ステータス メッセージと進行状況メッセージを返します。現時点では、進行状況をブラウザー クライアントに通知するために、ブラウザーで ajax ベースの定期的なポーリング呼び出しを MVC コントローラー メソッドに対して行います。MVC コントローラー メソッドは、Azure の「フィードバック」キューを読み取り、これらのメッセージを json としてブラウザーに返します。 .
明らかに、SignalR はこの不器用なポーリング/キューイング アプローチの非常に魅力的な代替手段のように見えますが、送信する必要がある複数のワーカー ロール (Web ロールとは対照的に) について話しているときに、これを行う方法についてのガイダンスはほとんど見つかりませんでした。個々またはすべてのクライアントへのステータス。
Clemensvastersによる SignalR.WindowsAzureServiceBusは素晴らしいように見えますが、最後に少し高くて乾いたままになります。つまり、良いサンプル ソリューションが欠けています。
追加の解説: これまでの私の読書から、SignalR アプローチを介したワーカーロール ( Webロールとは対照的に) からブラウザー クライアントへの直接通信は不可能であるように思われます。ワーカーはキューを使用して Web ロールと通信する必要があるようです。これにより、ポーリング アプローチが強制されます。つまり、worker ロールからメッセージを取得するためにキューをポーリングする必要があります。このポーリングは、表示されるブラウザーから開始 (駆動) する必要があります (Web ロールでポーリング ループを設定するにはどうすればよいでしょうか?)。
要約すると、Clemens Vasters の SignalR.WindowsAzureServiceBus スケールアウト アプローチを使用しても、SignalR はワーカー ロールからブラウザーへの直接通信を処理できません。
専門家からのコメントをお待ちしております。