socket.join
で簡単にルーム機能を実装できると聞いたが、なかなか使い方を理解できなかったのでメモ。
socket.ioにはルーム機能があって、これを使えばチャットルームなどを簡単に実装できる。
#やり方
socket.join("部屋名"); //部屋名に入室
で入室処理。
io.sockets.to("部屋名").emit('message'); //特定の部屋に向けてイベントを発射
これで特定の部屋だけにイベントを送る。
この二つの組み合わせでルーム機能が作れる。
一応言っておくと、部屋自体をオブジェクト等で作成する必要はない。
まとめると
1 socket.join(部屋名)でクライアントと部屋名を紐づける。
2 io.sockets.to("部屋名").emit('');で特定の部屋だけにイベントを発生させる。
これで同じページにいても、それぞれの部屋が独立する。
自分が実際に実装した時は、expressで
app.get("/room1", function(req, res) {
roomnumber = "1";
});
として、要求されたアドレスに応じて処理を変えたが、コードが冗長になってしまった。もっと楽ちんな方法があればいいが。