2013-05-13 22 views
37

Używam Socket.io i chciałbym poznać status połączenia z serwerem od strony klienta.Uzyskaj status połączenia na kliencie Socket.io

coś takiego:

socket.status // return true if connected, false otherwise 

muszę te informacje do uzyskania wizualnie dla użytkownika, jeśli połączenie spadła lub została ona odłączona z jakiegokolwiek powodu.

+1

Czy używasz klienta socket.io na liście: https://github.com/LearnBoost/socket.io-client lub prostej biblioteki socket.io? – Shubhansh

+0

Używam pliku javascript obsługiwanego z Node.js, więc myślę, że jest to pierwszy. – franzlorenzon

Odpowiedz

76

można sprawdzić właściwość socket.connected:

var socket = io.connect(); 
console.log('check 1', socket.connected); 
socket.on('connect', function() { 
    console.log('check 2', socket.connected); 
}); 

Jest aktualizowany dynamicznie, jeśli połączenie zostanie przerwane zostanie ona ustawiona na false dopóki klient odbierze połączenie ponownie. Tak łatwo sprawdzić za pomocą setInterval lub coś w tym stylu.

Innym rozwiązaniem byłoby złapanie zdarzeń disconnect i samodzielne śledzenie statusu.

+2

Działa doskonale. Nie znalazłem tej właściwości na dokumentach, więc dziękuję za cenne informacje;) – franzlorenzon

+7

Znalazłem to przez 'console.log'' na 'socket' zmienną;) – robertklep

+0

Lol, też powinienem to zrobić. Jeszcze raz dziękuję :) – franzlorenzon

4

Można sprawdzić pogodowymi połączenie traci lub nie bye użyciem tej funkcji: -

var socket = io(/**connection**/); 
socket.on('disconnect', function(){ 
//Your Code Here 
}); 

nadzieję, że to pomoże.