2010-10-17 12 views

Odpowiedz

9

Odpowiadając na moje własne pytanie - można wykrywać zamknięcie połączenia klienta wykonując:

http.createServer(function(request, response) {  
    request.connection.addListener('close', function() { 
     // callback is fired when connection closed (e.g. closing the browser) 
    }); 
} 
+0

to wyzwala po wysłaniu odpowiedzi, a nie wcześniej. – JasonS

+1

@JasonS To jest połączenie oddzwonić ... Zdarzenie jest dodawane, gdy użytkownik łączy się z serwerem - nie ma nic wspólnego z potrzebą wysłania żądania. –

0

Spójrz na Socket.io. Obsługuje następujące transporty z fallbacks w tej kolejności:

  1. websocket
  2. Adobe Flash Socket
  3. AJAX długo sondowania
  4. AJAX wieloczęściowy strumieniowe
  5. Zawsze iframe
  6. JSONP Polling

Zaletą jest to, że będziesz w stanie obsłużyć znacznie więcej c połączenia oncurrent niż sam długi sam polling. Ponadto dostaniesz bogaty zestaw funkcji, takich jak bicie serca i rozłączenia.

io.sockets.on('connection', function (socket) { 

    // ... other socket handlers here ... 

    socket.on('disconnect', function() { 
    // do something to handle the disconnect 
    }); 
}); 
+0

odrzucono dla: rozwiązania problemu z innym problemem – colthreepv

Powiązane problemy