服务器发送事件未使用React和NodeJ从流接收消息
我有一个非常简单的设置。
节点
export default class StreamController { public static newMessage = async (req: Request, res: Response) => { const { userid } = req.params; res.writeHead(200, { "Connection": "keep-alive", "Content-Type": "text/event-stream", "Cache-Control": "no-cache", }); setInterval(async () => { console.log(await MessagesController.hasNewMessage(userid)); res.write(`${JSON.stringify({ hasUnread: await MessagesController.hasNewMessage(userid) })}`); res.write("\n\n"); }, 5000); } }
反应
constructor() { super(); const uid = getUserId(); const eventSource = new EventSource(`http://localhost:8080/stream/messages/${uid}`) eventSource.Onmessage= (e) => { console.log(e) } }
我可以看到该流已打开,但是没有任何事件从服务器传递,而在服务器端发布了数据。我做错了什么?