Я использую node.js для длинных подключений. Я хочу знать, как я могу обнаружить, когда клиентское соединение закрывается (возможно, когда пользователь закрывает вкладку). Как указать для этого обратный вызов?
Обнаружение закрытия подключения клиента в node.js
Ответ 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
});
});