What is the proper way to manage multiple chat rooms with socket.io?
So on the server there would be something like:
io.sockets.on(\'connection\', functi
Update: Both Now.js and Bridge are now dead, see now.js dead and bridge dead. Socket.io seems to have adopted the callback feature as of v0.9, which is a good step forward.
While it isn't directly Socket.io related, Now.js (a higher level abstraction ontop of Socket.io) supports groups - http://nowjs.com/doc
They have a multi-room-chat example in their offocial repo here: https://github.com/Flotype/now/blob/master/examples/multiroomchat_example/multiroomchat_server.js
Socket.IO v0.7 now gives you one Socket
per namespace you define:
var room1 = io.connect('/room1');
room1.on('message', function () {
// chat socket messages
});
room1.on('disconnect', function () {
// chat disconnect event
});
var room2 = io.connect('/room2');
room2.on('message', function () {
// chat socket messages
});
room2.on('disconnect', function () {
// chat disconnect event
});
With different sockets, you can selectively send to the specific namespace you would like.
Socket.IO v0.7 also has concept of "room"
io.sockets.on('connection', function (socket) {
socket.join('a room');
socket.broadcast.to('a room').send('im here');
io.sockets.in('some other room').emit('hi');
});
Source: http://socket.io/#announcement