是否可以使用socket.io向多个房间发送消息?
发送至 1 个房间:
io.sockets.in(room).emit("id", {})
发送到N个房间:
io.sockets.in(room1, room2, roomN).emit("id", {})
是的,可以同时发送到多个房间。从测试 https://github.com/socketio/socket.io/blob/b3fc530abefd384b3a89ff5493e97f3ef85098d4/test/socket.io.js#L1873-L1876:
socket.on('emit', function(room){
sio.in('woot').in('test').emit('a');
sio.in('third').emit('b');
});
那是因为当你使用to
or in
您正在将该房间附加到要定位的房间列表中。来自源代码(lib/socket.js) https://github.com/socketio/socket.io/blob/b3fc530abefd384b3a89ff5493e97f3ef85098d4/lib/socket.js#L176-L181:
Socket.prototype.to =
Socket.prototype.in = function(name){
this._rooms = this._rooms || [];
if (!~this._rooms.indexOf(name)) this._rooms.push(name);
return this;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)