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。
任何人都知道我做错了什么?
答案 0 :(得分:0)
根据connect-sse node module的文档,看起来您应该引用sse
中间件而不是括号,如下所示:
app.get('/testing', sse, function(req, res, next) {
// ...
});