我目前正在处理服务器发送的事件,我的伪代码如下所示:
var listeners = [];
app.get('/stream', function (req, res) {
listeners.push({ req: req, res: res });
});
// ... something happens
notify(listeners);
现在这实际上工作得很好,但是我如何知道客户端何时关闭浏览器窗口,这样我最终就不会耗尽内存?我是否必须管理此客户端,或者是否有一些我找不到的 req.on('close', fn);
?
提前致谢。 :)
最佳答案
使用类似于请求的 close
event 的内容应该可以正常工作:
var listeners = [];
app.get('/stream', function (req, res) {
var listener = { req: req, res: res };
listeners.push(listener);
req.on('close', function() {
listeners.splice(listeners.indexOf(listener), 1);
});
});
关于javascript - 检测 NodeJS/Express 中的长请求何时结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26221000/