xhr を唯一のトランスポートとして使用する socket.io 接続があります。ブラウザーでアプリをロードすると (chrome と ff でテスト済み)、ソケットが接続され、ページから移動するまですべてが正常に機能します。ブラウザをリロードすると、「disconnect」イベントがクライアントから送信されていることがわかりますが、サーバーの切断イベントは非常に長い間発生しません (おそらくクライアントのハートビートがタイムアウトしたとき)。クライアントが切断されたときにサーバーでいくつかのクリーンアップ作業を行うため、これは問題です。クライアントがリロードすると、切断が発生する前に複数の接続イベントが発生します。ウィンドウの「beforeunload」イベントでもクライアントから手動で切断メッセージを発行しようとしましたが、役に立ちませんでした。何か案は?
socket.io サーバーをデバッグしたところ、Manager.prototype.onClientDisconnect が「クローズ タイムアウト」の理由でのみヒットしていることを確認できました。