socket.io周りでいつも、あれ?この情報どうやって受信するor送信するんやっけ?っていうのをメモしておく。
もちろん、前提条件は以下のコード内に書きます。
1 2 3 4 5 6 |
var io = require('socket.io'); io.sockets.on('connection', function(socket) { //この中に書くよ }); |
送信者も含め全員に送る
1 2 3 |
io.sockets.emit('event_name',{name:"hoge"}); |
送信者以外全員に送る
1 2 3 |
io.socket.broadcast('event_name',{name:"hoge"}); |
送信者のsocketのidを取得する
1 2 3 |
var socket_id = socket.id; |
専用のroomに入る
1 2 3 |
socket.join(room_id); |
指定したsocket_idに送る
1 2 3 |
io.sockets.socket(socket_id).emit('event_name',{name:"hoge"}); |
送信者のみに送る
1 2 3 |
io.socket.socket(socket.id).emit('event_name',{name:"hoge"}); |
room内全員に送信する
1 2 3 |
io.sockets.in(room_id).emit('event_name',{name:"hoge"}); |
disconnectしないで、roomから消える
disconnectが走れば、自動的にこれが走るが、disconnectしないでもroomから消えるには
1 2 3 |
socket.leave(room_id); |
この辺、押さえとけば、socket.io使ったチャット関連はいけるっぽい。
非同期処理に慣れたい。
こーへい