基本的にサーバーサイドの話。
(クライアントサイドでは、通信相手はサーバーしかいないので、socket.emitしか使用しないはず)
emitはsendに置き換え可能?(その場合、第1引数は不要)
送信相手 | 使用する関数 | 備考 |
---|---|---|
クライアントに対して送信 | socket.emit(event,message); | 自動的にシリアライズ(JSON.stringify()) される(オーバーヘッドがかかる) |
socket.json.emit(event,message); | JSON形式であることを明示 | |
特定のユーザーに対して送信 (socketsは省略可?) |
io.sockets.to(socket.id).emit(event,message); | |
io.to(socket.id).emit(event,message); | ||
自分を含む全員にブロードキャスト | io.sockets.emit(event,message); | |
io.emit(event,message); | ||
自分以外の全員にブロードキャスト | socket.broadcast.emit(event,message); | 自動的にシリアライズ(JSON.stringify()) される(オーバーヘッドがかかる) |
socket.json.broadcast.emit(event,message); | JSON形式であることを明示 | |
ルーム内の自分を含む全員にブロードキャスト (socketsは省略可?) |
io.sockets.to(roomID).emit(event,message); | |
io.sockets.in(roomID).emit(event,message); | ||
ルーム内の自分以外の全員にブロードキャスト | socket.broadcast.to(roomID).emit(event,message); | |
ルーム内の特定のユーザーに送信 | ----- | ソケットIDがわかるはずなので、特定のユーザーに対して送信する場合と同じでよいはず |