ตรวจไม่พบการตัดการเชื่อมต่อ heroku http สตรีมมิ่ง (sse) ด้วย 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 ไม่ได้ลงทะเบียนที่ฉันทำ

ด้วย heroku logs -t ฉันพิมพ์วันที่ไปเรื่อยๆ และไม่เคยเลย cleared

สิ่งนี้ใช้ได้กับ foreman start แต่ใช้ไม่ได้กับ heroku

ใครรู้ว่าฉันทำอะไรผิด?


person dylntrnr    schedule 05.01.2014    source แหล่งที่มา


คำตอบ (1)


จากเอกสารประกอบของ โมดูลโหนดเชื่อมต่อ sse ดูเหมือนว่าคุณควรจะอ้างถึง sse มิดเดิลแวร์ ไม่มี วงเล็บ เช่น:

app.get('/testing', sse, function(req, res, next) {
  // ...
});
person Zeke    schedule 06.01.2014
comment
ขอบคุณสำหรับการตอบกลับ ฉันทำการเปลี่ยนแปลงเหล่านั้น แต่เห็นสิ่งเดียวกันบน heroku สิ่งนี้ใช้ได้กับ foreman start แต่ใช้ไม่ได้กับ heroku - person dylntrnr; 07.01.2014