socket.emit(eventName[, ...args][, ack])

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

(重写 EventEmitter.emit方法)

  • eventName (字符串)
  • args
  • ack (Function)
  • Return Socket

通过事件名来触发事件给指定的socket,任意多的参数都可被传入,支持所有可序列化的数据结构。包括Buffer

socket.emit('hello', 'world');
socket.emit('with-binary', 1, '2', { 3: '4', 5: new Buffer(6) });

其中ack参数是可选的(用意确认客户端是否接受到讯息,或者对信息做处理并返回给服务器端),并且将被客户应答。

io.on('connection', (socket) => {
  socket.emit('an event', { some: 'data' });

  socket.emit('ferret', 'tobi', (data) => {
    console.log(data); // data will be 'woot'
  });

  // the client code
  // client.on('ferret', (name, fn) => {
  //   fn('woot');
  // });

});