Wid*_*dor 8 javascript node.js server-sent-events
我正在使用 Express 在 NodeJS 中编写应用程序的服务器端部分,它将使用服务器发送事件 (SSE)。我有一个似乎可行的解决方案,但需要了解在 Node.js 中是否有更好的方法。
代码的相关部分目前如下所示:
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 [...]
Run Code Online (Sandbox Code Playgroud)
其中res是响应对象。
我没有res.writeHead()看到其他例子使用res.flushHeaders():
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();
Run Code Online (Sandbox Code Playgroud)
就 SSE 和保持连接打开以发送消息而言,两者之间是否有区别?是否优于另一种?
它们实际上是等效的,因为res.write()将标头与其第一个块一起刷新。对于 SSE,您很可能需要立即响应,至少表明连接成功。res.setHeader()如果您稍后需要访问或修改标头状态,这可能很有用,但这似乎与 SSE 无关。
请参阅nodejs.org 文档以了解response.write()和response.setHeader()。
| 归档时间: |
|
| 查看次数: |
2825 次 |
| 最近记录: |