socket.io(node.js)のserver -> clienetの送信まとめ
2014年1月23日
roomを使わない場合
io.sockets.on('connection', function (socket) { // 本人 socket.emit('msg','Hello!'); // 他人へ(自分以外) socket.broadcast.emit('msg','Hello!!'); // 全員(自分も含め) io.sockets.emit('msg','Hello!!'); // 特定の誰か // var socket_id = socket.id; io.sockets.socket( socket_id ).emit('msg','Hello!!' ); });
特定の人に送る(それは自分かもしれないし、他人かもしれない)場合は、事前にsocket.idを保存しておく必要があります。
roomを使う場合
io.sockets.on('connection', function (socket) { // room1に入る socket.join('room1'); // room1にいる本人 socket.to('room1').emit('msg','Hello!!'); // room1にいる他人(自分以外) socket.broadcast.to('room1').emit('msg','Hello!!'); // room1にいる全員 io.sockets.in('room1').emit('msg','Hello!!'); // 特定の誰か io.sockets.socket( socket_id ).emit('msg','Hello!!' ); });
特定の誰かに送る場合は、roomを使わない場合と同じです。
socket.idは、接続するroom毎に変わるので、room1とroom2にjoinした場合、同じ人であっても、それは別のsocket.idになります。