Подтвердить что ты не робот

Обнаружение закрытия подключения клиента в node.js

Я использую node.js для длинных подключений. Я хочу знать, как я могу обнаружить, когда клиентское соединение закрывается (возможно, когда пользователь закрывает вкладку). Как указать для этого обратный вызов?

4b9b3361

Ответ 1

Отвечая на мой собственный вопрос - вы можете обнаружить закрытие клиентского соединения, выполнив:

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

Ответ 2

Взгляните на Socket.io. Он поддерживает следующие транспорты с резервированием в следующем порядке:

  • WebSocket
  • Adobe Flash Socket
  • Длительный опрос AJAX
  • Многопоточная потоковая передача AJAX
  • Forever Iframe
  • Опрос JSONP

Преимущество заключается в том, что вы сможете обрабатывать гораздо больше параллельных подключений, чем длительный опрос. Кроме того, вы получите богатый набор функций, таких как сердцебиение и разъединения.

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

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

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