位置:首页 > 后端 > node

node如何使用sse通信

dearweb 发布:2023-03-27 21:12:02阅读:

在 Node.js 中,您可以使用 `EventSource` 对象来实现 SSE(Server-Sent Events)通信。下面是一个简单的示例:


const http = require('http');

http.createServer((req, res) => {
  if (req.url === '/sse') {
    res.writeHead(200, {
      'Content-Type': 'text/event-stream',
      'Cache-Control': 'no-cache',
      'Connection': 'keep-alive'
    });

    // 发送 SSE 数据
    setInterval(() => {
      res.write(`data: ${new Date().toLocaleTimeString()}\n\n`);
    }, 1000);
  } else {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end(`
      <html>
        <head>
          <title>SSE Demo</title>
        </head>
        <body>
          <h1>SSE Demo</h1>
          <script>
            const source = new EventSource('/sse');
            source.onmessage = (event) => {
              const data = event.data;
              console.log(data);
            };
          </script>
        </body>
      </html>
    `);
  }
}).listen(3000);


在此示例中,我们创建了一个 HTTP 服务器,并为 SSE 数据和 HTML 页面提供了不同的路由。当用户请求 `/sse` 路由时,我们将响应的 `Content-Type` 设置为 `text/event-stream`,这表示我们将发送 SSE 数据。然后,我们使用 `setInterval` 定期向客户端发送 SSE 数据。


在 HTML 页面中,我们使用 `EventSource` 对象来监听 `/sse` 路由的 SSE 数据。每当接收到 SSE 数据时,我们将其打印到控制台上。


希望这可以帮助您了解如何在 Node.js 中使用 SSE 通信。


24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看