Socket.io 事件监听特定房间

lsh*_*rir 6 javascript sockets node.js socket.io

我不确定这是否可能,但我确实需要该功能。我可以做类似的事情吗:

客户端

sio = io.connect(url);
sio.to('room1').on('update', function(roomName) {
    console.log(roomName);
});
Run Code Online (Sandbox Code Playgroud)

每当更新事件发送到“room1”时都会触发哪个?

服务器端:

sockets.to('room1').emit('update', 'room1');
Run Code Online (Sandbox Code Playgroud)

Fer*_*265 7

不幸的是,这不仅仅适用于客户端。但你可以在服务器端完成。

服务器设置:

sockets.on('connection', function (socket) {
    socket.on('join', function (room) {
        socket.join(room);
    });
});

//...

sockets.to('room1').emit('update', 'room1');
Run Code Online (Sandbox Code Playgroud)

客户:

sio.emit('join', 'room1');
sio.on('update', function (room) {
    console.log(room);
});
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回复,我如何知道“room1”上是否激活了“更新”事件?当插座位于两个房间并且需要区分其中一个房间的“更新”时,我的问题就出现了 (6认同)