SSE(服务器发送的事件)服务器响应处理

时间:2018-08-10 06:43:18

标签: node.js server-sent-events

我已经设置了一些服务器发送的事件,基本上可以监听新消息。我在浏览器中创建与EventSource的连接,该连接向服务器发出请求。我的服务器响应如下:

res.writeHead(200, {
  'Content-Type': 'text/event-stream',
  'Cache-Control': 'no-cache',
  'Connection': 'keep-alive'
})

问题在于,如果在50秒钟之内没有收到“完全响应”,我的服务器就会给出超时错误...

到目前为止,我发现的唯一解决方法是每隔50秒发送一次“ ping”事件,以告知连接仍然有效:

sendPing()
function sendPing(){
    setTimeout(function(){
        res.sseSend(null,'heartbeat') //this simulates an actual event 
        sendPing()
    }, 50000)    
}

这是个好主意吗?一个坏主意?有更好的解决方案吗?这会在单线程应用程序中引起任何问题吗?

非常感谢您!

0 个答案:

没有答案