Отключение потоковой передачи http (sse) heroku не обнаружено с помощью express.js

Heroku не определяет, когда клиент отключается.

Я клонировал их стартовое приложение и добавил пару строк для 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");
    });
 });

Когда я захожу в свое приложение, я вижу правильный ответ:

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

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

Но после того, как я закрываю вкладку браузера, геройку не регистрируется, что я и сделал.

С heroku logs -t я постоянно печатаю дату и никогда cleared

Это работает локально с foreman start, но не на героку.

Кто-нибудь знает, что я делаю неправильно?


person dylntrnr    schedule 05.01.2014    source источник


Ответы (1)


Судя по документации для модуля узла connect-sse, похоже, вы должны иметь в виду sse ПО промежуточного слоя без круглых скобок, например:

app.get('/testing', sse, function(req, res, next) {
  // ...
});
person Zeke    schedule 06.01.2014
comment
Спасибо за ответ. Я внес эти изменения, но вижу то же самое на героку. Это работает локально с foreman start, но не на героку. - person dylntrnr; 07.01.2014