用socket.io管理多个聊天室的正确方法是什么?
所以在服务器上会有如下的东西:
io.sockets.on('connection',function (socket) { socket.on('message',function (data) { socket.broadcast.emit('receive',data); }); });
现在这可以为一个房间工作正常,因为它向所有连接的人广播消息.如何向特定聊天室的用户发送消息?
添加.of(‘/ chat / room_name’)?
或者将每个人的阵列存放在房间里?
解决方法
Socket.IO v0.7现在给你定义一个你的命名空间一个Socket:
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 });
使用不同的套接字,您可以选择性地发送到您想要的特定命名空间.
Socket.IO v0.7也有“房间”的概念
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'); });