socket.io 事件速查表

2018-10-16 18:54 更新

事件速查表



io.on('connect', onConnect);

function onConnect(socket){

  // 發(fā)送給當(dāng)前客戶端
  socket.emit('hello', 'can you hear me?', 1, 2, 'abc');

  // 發(fā)送給所有客戶端,除了發(fā)送者
  socket.broadcast.emit('broadcast', 'hello friends!');

  // 發(fā)送給同在 'game' 房間的所有客戶端,除了發(fā)送者
  socket.to('game').emit('nice game', "let's play a game");

  // 發(fā)送給同在 'game1' 或 'game2' 房間的所有客戶端,除了發(fā)送者
  socket.to('game1').to('game2').emit('nice game', "let's play a game (too)");

  // 發(fā)送給同在 'game' 房間的所有客戶端,包括發(fā)送者
  io.in('game').emit('big-announcement', 'the game will start soon');

  // 發(fā)送給同在 'myNamespace' 命名空間下的所有客戶端,包括發(fā)送者
  io.of('myNamespace').emit('bigger-announcement', 'the tournament will start soon');

  // 發(fā)送給指定 socketid 的客戶端(私密消息)
  socket.to(<socketid>).emit('hey', 'I just met you');

  // 包含回執(zhí)的消息
  socket.emit('question', 'do you think so?', function (answer) {});

  // 不壓縮,直接發(fā)送
  socket.compress(false).emit('uncompressed', "that's rough");

  // 如果客戶端還不能接收消息,那么消息可能丟失
  socket.volatile.emit('maybe', 'do you really need it?');

  // 發(fā)送給當(dāng)前 node 實(shí)例下的所有客戶端(在使用多個 node 實(shí)例的情況下)
  io.local.emit('hi', 'my lovely babies');

};

提示: 下面的事件是保留的,不應(yīng)該在應(yīng)用中用作事件名稱:

  • error
  • connect
  • disconnect
  • disconnecting
  • newListener
  • removeListener
  • ping
  • pong
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號