繁体   English   中英

在特定房间收听的Socket.io事件

[英]Socket.io event listening on a specific room

我不确定这是可能的,但我真的需要这个功能。 我可以这样做:

客户端

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

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

服务器端:

sockets.to('room1').emit('update', 'room1');

“简单”的方法是确保从服务器发出的内容包括有效负载中的房间。

sockets.to(room).emit('update', {room: room, message: 'hello world!'})

很可能你想在客户端做同样的事情。 这样从客户端发送到服务器的消息包括房间标识符,以便可以正确路由消息。

或者实现名称空间。

遗憾的是,这不仅仅在客户端起作用。 但是你可以在服务器端做到这一点。

服务器设置:

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);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM