正在发送和正在接受的数据(消息确认机制 acknowledgements)

优质
小牛编辑
128浏览
2023-12-01

有些时候,客户端会需要确认向服务器端发送的事件是否在服务器端正确执行了。

为了能够实现这一功能,只需简单的通过一个回调函数,放置与**.send()或者.emit()方法的最后一个参数即可,值得一提的是,当你使用.emit()**,这个确认是有你来完成的,也就是说你可以在这里一直的发送数据。

服务器端(app.js)

var io = require('socket.io')(80);

io.on('connection', function (socket) {
  socket.on('ferret', function (name, fn) {
    fn('woot');
  });
});

客户端(index.html)

<script>
  var socket = io(); // TIP: io() with no args does auto-discovery
  socket.on('connect', function () { // TIP: you can avoid listening on `connect` and listen on events directly too!
    socket.emit('ferret', 'tobi', function (data) {
      console.log(data); // data will be 'woot'
    });
  });
</script>