私が達成しようとしていることを行うための確立されたパターンがあるかどうか疑問に思っていました。かなり一般的なシナリオのように思われるので、そうでなければ驚くでしょうが、何も見つかりません。私が使用している主な技術:
- ASP.NET MVC4
- シグナルR
- Redis (ServiceStack API を使用)
Redis からのメッセージをサブスクライブし、SignalR を使用してこれらをエンド ユーザーに公開したいと考えています。
エンドユーザーごとに新しい Redis 接続をセットアップするのではなく、トピック/チャネルごとに 1 つのサブスクリプションを維持したいと考えています。各トピックには独自の SignalR ハブがあり、エンド ユーザーはそれをサブスクライブします。したがって、基本的に redis トピック --> signalR ハブ --> 多くのユーザーです。
私の質問は、これらのサブスクリプションを維持する方法に関するものです。それらは (本質的に) ブロッキングであり、これは Web アプリケーションを扱う際の問題です。各トピックのサブスクリプションを処理するために個別のスレッドを作成するだけで安全ですか、それともこれを行うより良い方法はありますか? それとも、問題を完全に誤解していますか?
私はWeb開発にかなり慣れていないので、どんな考えでもいただければ幸いです。