heroku http streaming(sse)断开连接未使用express.js检测到

时间:2014-01-05 23:57:35

标签: heroku express server-sent-events

Heroku未检测到客户端何时断开连接。

我克隆了他们的首发app并为sse添加了几行:

var sse = require('connect-sse')();

app.get('/testing', sse, function(req, res, next) {
    var interval;
    interval = setInterval(function() {
      var date;
      date = new Date();
      res.json({
        ping: date
      });
      return console.log(date);
    }, 2000);
    return req.on('close', function() {
      clearInterval(interval);
      return console.log("cleared");
    });
 });

当我去app时,我看到了正确的反应:

id: 0
data: {"ping":"2014-01-05T23:53:49.835Z"}

id: 1
data: {"ping":"2014-01-05T23:53:51.839Z"}

但在我关闭浏览器选项卡后,heroku没有注册我做的。

使用heroku logs -t我会一直打印出日期,而不是cleared

这适用于foreman start本地,但不适用于heroku。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

根据connect-sse node module的文档,看起来您应该引用sse中间件而不是括号,如下所示:

app.get('/testing', sse, function(req, res, next) {
  // ...
});