在Node.js中实现服务器发送事件的简单方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (86)

似乎所有在Node.js中实现SSE的方法都是通过更复杂的代码实现的,但似乎应该有一种更简单的方式来发送和接收SSE。是否有任何API或模块可以使这个更简单?

提问于
用户回答回答于

你应该可以使用Socket.io来做这样的事情。首先,你需要安装它npm install socket.io。从那里,在你的代码中你会想要拥有var io = require(socket.io);

你可以在服务器上使用这样的东西:

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('../..')(server);
var port = process.env.PORT || 3000;

server.listen(port, function () {
  console.log('Server listening at port ' + port);
});

app.use(express.static(__dirname + '/public'));

io.on('connection', function (socket) {
    socket.emit('EVENT_NAME', {data});
});

客户端上有这样的内容:

<script src="socket_src_file_path_here"></script>
<script>
  var socket = io('http://localhost');
  socket.on('EVENT_NAME', function (data) {
    console.log(data);
    //Do whatever you want with the data on the client
  });
</script>

扫码关注云+社区

领取腾讯云代金券