私は、各キーストロークが(DBに保存された)サーバーに送信され、すべてのクライアントに返されたチャットアプリケーション用のSignalR(0.5.3)ハブを使用しています。ソートの文字列トークン)がサーバーから返されます。アプリケーションプールリサイクルでのSignalR接続処理
アプリケーションプールがリサイクルされるまで、メモリ内のサーバー状態が失われているため、キーストロークをすべてのクライアントに中継しなくなり、サーバーから戻り値が返されません。この時点で、私はSignalRを介したすべてのリクエストがIISによってキューに入れられ、アプリケーションプールがリサイクルされると処理されると考えます。
私はこのシナリオをどのように処理して、すべてのクライアントがアプリケーションのプールリサイクルによるサーバーの使用不能/遅延を認識し、ユーザーにしばらく待ってから再接続時に操作を再開するよう通知することができますか?
オプションの場合:クライアントが長時間の遅延(タイムアウト)の後に切断を知るだけなので、再接続/切断イベントによる処理はうまくいかないかもしれませんが、私はまだそれを撃つでしょう。 – Nick
@Taylor Mullen - こんにちは、これは、シグナル・サーバーがなくなると、クライアントがタイムアウトするまで再接続しようとしていることがあり、クライアント側にイベントが存在しないことを意味すると考えています現時点でこれを検出するために使用されますか?乾杯は – Will
@部分的に正しいです。 0.5.3では、「nowReconnecting」などの特定のイベントは受信されませんが、SignalRがstateChangedイベントを介して再接続しようとしていることを検出できます。再接続状態になると、stateChangedイベントが発生し、新しい接続状態が再接続されます。また、クライアントにタイムアウトはありません。永久に再接続しようとします。 –