1

SignalR でやろうとしていること:

1-ページの読み込み時にセッション UserID から隠しフィールドを設定し、この ID をサーバーの SignalR Hub に送り返して、特定のユーザーのポーリング スレッドを開始します。

2- ユーザーがサイトを離れるときにスレッドを終了します。

現在、ユーザーごとに 30 秒ごとに AJAX 要求をサーバーに送信して、新しいユーザー メッセージを確認しています。それを SignalR に置き換えたいだけです。ページの読み込み時に非表示フィールドを設定し、ajax リクエストを介してセッション変数を設定することでユーザー セッションが作成されると、HUB にユーザー レベルのスレッドを作成できるため、同じユーザーに対して新しいスレッドが何度も作成されることはありません。ページの更新。スレッドは、新しく到着したメッセージを (15 秒) 後に定期的にチェックします。主な問題は、セッションが終了したときに特定のユーザー用に作成されたスレッドを終了する方法です。これは SignalR を使用する正しい方法ですか?

4

1 に答える 1

0

これは良い設計とは思えません。ポーリングは決して良いものではありません。とにかく、この種の問題には適していません。メッセージをすぐに配信できればさらによいでしょう。複数の Web サーバーを使用していますか? そうでない場合は、メッセージをアプリケーション内でローカルに配信します。複数の Web サーバーを使用している場合は、RabbitMQ、Redis などを使用してサーバー間でメッセージを送信することを検討してください。

于 2012-06-22T07:52:46.030 に答える