1. ホーム
  2. node.js

[解決済み] io.sockets.emitとbroadcastの違いは何ですか?

2022-02-26 10:20:53

質問

io.sockets.emitとsocket.broadcast.emitはどう違うのですか?ブロードキャストは、送信したソケット以外のすべての人にエミットするだけですか?

互換的に使用できるようです。

io.sockets.on('connection', function (socket) {
  //these should do the same thing  
  io.sockets.emit('this', { receivers: 'everyone'});

  socket.broadcast.emit('this', { receivers: 'everyone but socket'}); //emits to everyone but socket
  socket.emit('this', { receivers: 'socket'}); //emits to socket
});

解決方法は?

io.sockets.emit は、すべてのクライアントに送信されます。

socket.broadcast.emit は、新しく作成された接続を除く、他のすべてのクライアントにメッセージを送信します。

このSocket.IO Wikiの投稿は、この質問を読んでいるすべての人の助けになります。

また、最近のチートシートはこちらでご覧いただけます。

https://socket.io/docs/v4/emit-cheatsheet