问题描述
我在节点中没有收到来自SSE的回复。一次调用res.end()后发送所有数据。
我从中接收数据的功能如下:
static async getRTUpdates(req: Request,res: Response) {
res.setHeader('Content-Type','text/event-stream');
res.setHeader('Cache-Control','no-cache');
res.setHeader('Connection','keep-alive');
res.flushHeaders();
let counter = 0;
let interValID = setInterval(() => {
counter++;
if (counter >= 10) {
clearInterval(interValID);
res.end(); // terminates SSE session
return;
}
res.write(`data: ${JSON.stringify({ num: counter })}\n\n`);
},1000);
res.on('close',() => {
clearInterval(interValID);
res.end();
});
}
然后,当我从邮递员连接到此功能时,在10秒钟内没有任何反应,在结束连接后,我立即接收到所有数据。如何定期接收数据?当未设置Connection:'keep-alive'标头时,我会期望出现此问题,但是既然如此,我不知道可能是什么问题。我也只在本地运行它,而不是在生产环境中运行,因此它不会通过Nginx运行。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)