Благодаря ответам Мирошко и yojimbo87 я смог поймать событие 'close', но мне пришлось внести некоторые дополнительные изменения.Причина, по которой просто перехват события 'close' не решил мою проблему, заключается в том, что когда клиент отправляет запрос на сервер node.js, сам сервер не может получить информацию, если соединение все еще открыто, пока он не отправит что-то обратноклиент (насколько я понял - это из-за протокола HTTP).Таким образом, дополнительная настройка заключалась в том, чтобы время от времени что-то писать в ответ.Еще одна вещь, которая мешала этому работать, это то, что у меня был «Content-type» как «application / json».Изменение его на «text / javascript» помогало время от времени передавать «пробелы» без закрытия соединения.В итоге у меня было что-то вроде этого:
var server = http.createServer(function(req,res){
res.writeHead(200, {'Content-type': 'text/javascript'});
req.connection.on('close',function(){
// code to handle connection abort
});
/**
* Here goes some long polling handler
* that performs res.write(' '); from time to time
*/
// some another code...
});
server.listen(NODE_PORT, NODE_LISTEN_HOST);
Мой оригинальный код намного больше, поэтому мне пришлось его сильно сократить, чтобы показать чувствительные части.
Я хотел бы знать, есть ли лучшие решения, нов данный момент это работает для меня.