如何在socket.io的房间中创建/加入名称空间?
问题描述:
我想用namespaces
的room
的socket.io
的功能。如何在socket.io的房间中创建/加入名称空间?
我知道这usefull reminder关于房间,我们可以看到:
- 的一种方式发射到插座上的命名空间的房间
io.of('namespace').in('room').emit('event_name', data)
- 一种方式来获得一个命名空间的房间套接字的列表
io.of('namespace').clients('room')
但这个页面desn't提供给我们的方式来create/join
一个socket
到特定namespace
作为pecific room
。
如何做到这一点?我已尝试以下示例,但未取得任何成功:
socket.join('city').in('district');
io.of('district').clients('/city'); // get []
io.of('/district').clients('/city'); // get []
答
您无法加入/退出命名空间。当您第一次连接时,命名空间是url的一部分
例如,连接到"http://localhost/district"
将连接到"district"
命名空间。
在服务器上,您可以加入客房该命名空间是这样的:
io.of('/district').on('connection', function(socket){
socket.join('city');
});