我使用 express 模块在 node.js 中创建了一个服务器。它公开了一个 get api,用于通过始终保持活动状态的打开连接定期向客户端发送事件。
const cors = require('cors');
const app = express();
app.use(cors());
const port = 3001;
app.get('/sse-server', function (request, response) {
response.status(200).set({
"connection": "keep-alive",
"cache-control": "no-cache",
"content-Type": "text/event-stream"
});
let data = { name: "Mithoon Kumar"}
setInterval(()=>{ response.write(JSON.stringify(data));}, 0)
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
我还在 node.js 中创建了一个客户端,它使用 eventsource 来接收服务器发送的事件
console.log("EventSource", EventSource);
const eventSource = new EventSource('http://127.0.0.1:3001/sse-server');
eventSource.onopen = (event) => {
console.log("event", event);
};
eventSource.onerror = (error) => {
console.log("error", error);
}
eventSource.onmessage = (message) => {
console.log("message", message);
}
问题是永远不会触发 onmessage 方法。如果我在 chrome 浏览器中打开链接(http://127.0.0.1:3001/sse-server ),它会在页面上显示消息。
天涯尽头无女友
慕莱坞森
相关分类