我正在使用NodeJS和Express编写应用程序的服务器端部分,该部分将使用Server-Sent-Events(SSE)。目前我有一个似乎可行的解决方案,但需要了解是否有更好的NodeJS实现方式。
目前相关代码如下:
const headers = {
'Content-Type': 'text/event-stream',
'Connection': 'keep-alive',
'Cache-Control': 'no-cache',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': 'true'
};
res.writeHead(200, headers);
// Do more stuff [...]
res
是响应对象。
有些示例中,使用 res.flushHeaders()
而不是调用 res.writeHead()
:
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Connection', 'keep-alive');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Credentials', 'true');
res.flushHeaders();
这两者有区别吗?哪种更好,特别是在使用 SSE 并保持连接以发送消息方面?