检测NodeJS / Express中的长请求何时结束

时间:2014-10-06 16:52:53

标签: javascript node.js express server-sent-events

我目前正在处理服务器发送的事件,我的伪代码如下所示:

var listeners = [];
app.get('/stream', function (req, res) {
    listeners.push({ req: req, res: res });
});

// ... something happens
notify(listeners);

现在这种方法非常精细,但我怎么知道客户端何时关闭浏览器窗口,以便最终我的内存不足?我是否必须管理此客户端,或者是否有一些我无法找到的req.on('close', fn);

提前致谢。 :)

1 个答案:

答案 0 :(得分:1)

使用类似请求的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);
  });
});