SignalR 2.2.0 を使用して、マルチサーバー スケールアウト セットアップでハブ メソッドを実行するクライアントに関する観測結果を検証したいと思います。
SQL Server スケールアウト メッセージ バスを使用して、マルチ サーバー モデルで SignalR を実行しています。
クライアントが接続するOnConnected
と、予想どおり、ハブのメソッドが呼び出されます。Context.ConnectionId
静的辞書に保存します。
クライアントが後でハブのメソッドを呼び出すと、最初に OnConnected メソッドを実行したサーバーではなく、ファーム内の別のサーバーがハブ メソッドを実行しているように見えます。ハブ メソッドのContext.ConnectionId
値は正しいですが、辞書に存在しません。
これは、スケール アウト モデルで予期される動作ですか? もしそうなら、すべてのサーバー上のすべてのハブが ConnectionId に基づいて接続状態を検索できるように、接続状態データをデータベースに保存する必要があると思います。