我无法让SSE在我的nodejs / express aplication上工作。我有这些代码:
app.get('/sse', function (pedido, resposta) {
resposta.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive'
});
resposta.write('\n');
global.res = resposta;
setInterval(function () {
var d = new Date();
global.res.write('id: ' + d.getMilliseconds() + '\n');
global.res.write('data:' + new Date() + '\n\n');
}, 5000);
});
在客户端:
//...
var source = new EventSource('/sse');
source.onmessage = function (event) {
document.getElementById("r").innerHTML = event.data;
};
//...
但它不起作用。在客户端浏览器上,它看起来是EvenetSource,但它会发生超时。在服务器上,如果我插入console.logs(每个地方),我可以看到它正在工作。有些东西不见了,我不明白为什么。谁能帮我?谢谢。
答案 0 :(得分:2)
我失踪了:
setInterval(function () {
var d = new Date();
global.res.write('id: ' + d.getMilliseconds() + '\n');
global.res.write('data:' + new Date() + '\n\n');
}, 5000);setInterval(function () {
var d = new Date();
global.res.write('id: ' + d.getMilliseconds() + '\n');
global.res.write('data:' + new Date() + '\n\n');
resposta.end(); // was missing this
}, 5000);