プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2015/09/13

Socket.IO送信関数一覧

基本的にサーバーサイドの話。

(クライアントサイドでは、通信相手はサーバーしかいないので、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がわかるはずなので、特定のユーザーに対して送信する場合と同じでよいはず