无法获取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-easysseeasysse-client

关于javascript - SSE和NodeJS Express,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22738942/

10-13 04:49