Socket.ioを使用していますが、クライアント側からサーバーへの接続状態を知りたいです。
このようなもの:
socket.status // return true if connected, false otherwise
接続が切断されたり、何らかの理由で切断されたりした場合に、ユーザーに視覚的なフィードバックを提供するために、この情報が必要です。
socket.connected
プロパティを確認できます:
var socket = io.connect();
console.log('check 1', socket.connected);
socket.on('connect', function() {
console.log('check 2', socket.connected);
});
動的に更新されます。接続が失われた場合、クライアントが再び接続を取得するまで、false
に設定されます。 setInterval
などで簡単に確認できます。
別の解決策は、disconnect
イベントをキャッチし、自分でステータスを追跡することです。
この機能を使用すると、接続が失われたかどうかを確認できます。
var socket = io( /**connection**/ );
socket.on('disconnect', function(){
//Your Code Here
});
それがあなたを助けることを願っています。
接続の状態を自分で追跡します。ブール値付き。宣言時にfalse
に設定します。さまざまなイベント(接続、切断、再接続など)を使用して、現在のブール値を再割り当てします。注:文書化されていないAPI機能(socket.connected
など)を使用することはお勧めできません。この機能は、削除が記載されていない後続のバージョンで削除される可能性があります。
最近では、socket.on( 'connect'、...)が機能していません。以下のコードを使用して、最初の接続時に確認します。
if (socket.connected)
console.log('socket.io is connected.')
再接続時にこのコードを使用します。
socket.on('reconnect', ()=>{
//Your Code Here
});
socket.connectedをチェックする@robertklepの答えは、再接続イベントを除いて正しいです https://socket.io/docs/client-api/#event-reconnect 再接続に成功しました。」しかし、socket.connected
をチェックすると、falseです。
それがバグなのか意図的なのかはわかりません。