我不确定这是否可能,但我确实需要这个功能。我可以这样做吗:
客户端sio = io.connect(url);
sio.to('room1').on('update', function(roomName) {
console.log(roomName);
});
当一个更新事件发出到'room1'时,哪个将被触发?
服务器端:sockets.to('room1').emit('update', 'room1');
不幸的是,这并不仅仅适用于客户端。但是你可以在服务器端做。
服务器设置:sockets.on('connection', function (socket) {
socket.on('join', function (room) {
socket.join(room);
});
});
//...
sockets.to('room1').emit('update', 'room1');
客户:sio.emit('join', 'room1');
sio.on('update', function (room) {
console.log(room);
});
"简单"的方法是确保从服务器发出的消息在有效负载中包含房间。
sockets.to(room).emit('update', {room: room, message: 'hello world!'})
很可能你想在客户端做同样的事情。以便从客户端发送到服务器的消息包含房间标识符,以便消息可以正确路由。
或者实现名称空间。