无法获取SSE事件到浏览器中的文件。
此服务器代码(表示):
app.all('/callme', function(req, res){
res.writeHead(200, {
'Connection': 'keep-alive',
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache'
});
setInterval(function(){
console.log('writing');
res.write((new Date()).toString() + '\n');
}, 1000);
})
这是客户端代码:
var source = new EventSource('/events');
source.onmessage = function(e) {
document.body.innerHTML += e.data + '<br>';
};
我在客户端上使用XHR使用相同的服务器代码,并且可以正常工作。服务器似乎正在正确发送数据,但未在浏览器中触发。
我已经读过JavaScript EventSource SSE not firing in browser在这里似乎并不适用,因为我没有运行会影响它的防病毒软件。
最佳答案
您的活动格式似乎不正确
您想要这样格式化
res.write("id: " + Date.now() + "\ndata: " + message + "\n\n");
另外,看看这个
node-easysse和easysse-client
关于javascript - SSE和NodeJS Express,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22738942/