Socket.io は Java Netty サーバーに接続します。サーバーがダウンしているときに socket.io がサーバーに接続しようとすると、404 が発生します。したがって、Javascript コンソールは次のように述べています。
http://mylocalhost.com/socket.io/1/?t=1354790544338 - Failed to load resource
この後、socket.io 接続は完全に切断されます。その404のため、再接続を試みません...
これをどのように処理すればよいですか?5 秒ごとに接続を試み、サーバーをオンラインにする間隔を設定しようとしましたが、そのエラーのために接続を試みません。
ページのリロード後、正常に動作します。サーバーが再びオンラインになったときに監視して接続する方法は socket.io にありますか? 適切な解決策は何ですか?
socket.io.js クライアントの JavaScript が正しく読み込まれていることを確認しました。何が起こっているのかについての私の理解は次のとおりです。
- socket.io がハンドシェイクを開始し、socket.socket.connecting が true に設定されます
- サーバーがダウンしているため、http://mylocalhost.com/socket.io/1/?t=1354790544338へのリクエストで404 が発生します
- これはエラーですが、socket.socket.connecting は true のままです。これにより、次の再接続試行が失敗します。これは、既に再接続しようとしていると思われる場合は再接続を試行しないためです。
再接続を試みる前に呼び出しを試みましdisconnect()
たが、再接続を false に設定しましたが、接続されたソケットがなく、 を呼び出すとdisconnect()
、 がスローされ"Cannot call method 'close' of undefined"
ます。
次の接続試行の準備ができるように、socket.io を "リセット" して false として再接続するための適切な解決策は何でしょうか?