バックエンド サーバーへの接続がランダムに出入りする可能性がある低帯域幅環境で SignalR を使用しようとしており、Web アプリケーションが適切に応答することを望んでいます。
この接続 API はこの 1 年間で流動的だったようですが、最新のドキュメントに従って、$.connection.hub.stateChanged に接続して接続状態の変化を検出しようとしたところ、いくつかのヒットが得られました。起動時に、クライアントが切断 -> 接続 -> 接続されたときに、サーバーを停止するとイベント ハンドラーが起動せず、サーバーを再起動すると、リアルタイム メッセージングが機能しなくなります。
このシナリオをテストするために、IIS で ASP.NET Web サーバーを実行している Windows 7 で、Web クライアントを Google Chrome で実行しています。サイトが実行され、メッセージが交換されたら、IIS で Web サイトを強制終了します。メッセージは停止しますが、クライアントは通知を受け取りません。
ここに簡単なスニペットがあります (TypeScript を使用):
$.connection.hub.stateChanged((change) => {
console.log("state changed...");
console.log(change);
if (change.newState === $.signalR.connectionState.reconnecting) {
this.raise('action:disconnected');
}
else if (change.newState === $.signalR.connectionState.connected) {
this.raise('action:connected');
}
});
どんなガイダンスでも大歓迎です、ありがとう!
-ジェレミー