3

Redis スケールアウト (とされる) とハブで SignalR を使用する Web アプリがあり、正常に動作します。接続されているすべてのクライアントにメッセージを送信できるようにするには、worker ロールが必要ですが、その方法がわかりません。また、ワーカーが定期的に実行するメソッドをすぐに実行するテスト アプリとして機能するコンソール アプリケーションもあります。

ワーカー アプリまたはコンソール アプリ内で Web サーバーをホストするのは奇妙に思えますが、これまでのところ、ほとんどの場合はそうでした。Web アプリとの会話も奇妙に思えます。メッセージを Redis に投稿するだけで、すべてのサブスクライバーがそれを受け取ることができるはずではありませんか?

これは私が使用しているコードです。UseRedis呼び出しとhandleExecutedActionほとんどそのままの内容を Web アプリからコピーしました。スローも何もしませんが、メッセージは Web クライアントに届きません。

GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration("...", "..."));
var hubContext = GlobalHost.ConnectionManager.GetHubContext<WebUI.EventHub>();
hubContext.Clients.All.handleExecutedAction(new Action { Type = "testing" });

このページを見つけた後、このメソッド (コンテキスト) を使用しました。他のメッセージは Web アプリから送信され、コンソール アプリからは何も送信されないため、クライアントが機能していることはわかっています...

4

0 に答える 0