我已经设置了一些服务器发送的事件,基本上可以监听新消息。我在浏览器中创建与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)
}
这是个好主意吗?一个坏主意?有更好的解决方案吗?这会在单线程应用程序中引起任何问题吗?
非常感谢您!