Javascript 从不同的命名空间连接命名空间室

Javascript 从不同的命名空间连接命名空间室,javascript,node.js,websocket,socket.io,namespaces,Javascript,Node.js,Websocket,Socket.io,Namespaces,所以,正如我所问的,我如何加入一个“在”不同名称空间中的名称空间室 var mainNamespace = io.of('/main'); var chatNamespace = io.of('/chat'); mainNamespace.on("connection", function (socket) { socket.on("somethingHappens", function () { // i thought i could do this

所以,正如我所问的,我如何加入一个“在”不同名称空间中的名称空间室

var mainNamespace = io.of('/main');
var chatNamespace = io.of('/chat');

mainNamespace.on("connection", function (socket) {

    socket.on("somethingHappens", function () {
        // i thought i could do this
        chatNamespace.join("coolRoom", function(){
           console.log("yey i joined the room!");
        })
    });
}
我能得到这个吗?
谢谢你。

你做这件事不容易。与文件室不同,名称空间不是动态的,是根据连接确定的。例如,您可以调用io.connect('/main');在前端

一旦建立了连接,套接字就属于它所连接的名称空间


的想法已经存在了一段时间,有一些实现和模块

你做这件事不容易。与文件室不同,名称空间不是动态的,是根据连接确定的。例如,您可以调用io.connect('/main');在前端

一旦建立了连接,套接字就属于它所连接的名称空间


的想法已经存在了一段时间,有一些实现和模块

xploader没有比我最初对github的评论(从2012年开始)更多的补充,因为我不再使用该库了

参考:

我记得变量
socket
有一个名为
namespace
的属性,它引用了socket当前所在的命名空间。我不能就2012年以来API的变化发表意见

以下命令可以让您更多地了解内部发生的情况:

console.log( socket.namespace === mainNamespace );
console.log( socket.namespace.name );
console.log( socket.rooms );
我建议尝试手动更改
socket.namespace
,例如:

socket.namespace=chatnespace

如果您未能做到这一点,那么我认为该套接字将加入
/main/coolRoom
,而不是您所期望的
/chat/coolRoom


对于后代,如果其他人有问题,我建议记录上面的
console.log
语句,并观察当前名称空间名称如何影响
.join()
方法。

xploader除了我对github的最初评论(从2012年开始)之外,没有更多内容可添加因为我不再使用那个图书馆了

参考:

我记得变量
socket
有一个名为
namespace
的属性,它引用了socket当前所在的命名空间。我不能就2012年以来API的变化发表意见

以下命令可以让您更多地了解内部发生的情况:

console.log( socket.namespace === mainNamespace );
console.log( socket.namespace.name );
console.log( socket.rooms );
我建议尝试手动更改
socket.namespace
,例如:

socket.namespace=chatnespace

如果您未能做到这一点,那么我认为该套接字将加入
/main/coolRoom
,而不是您所期望的
/chat/coolRoom


对于后代,如果其他人有问题,我建议记录上面的
控制台.log
语句,并观察当前名称空间名称如何影响
.join()
方法。

遗憾的是,它不再工作了,我不得不合并两个名称空间来解决这个问题。。。无论如何,谢谢你。:)不幸的是,它不再工作了,不得不合并两个名称空间,我不得不解决这个问题。。。无论如何,谢谢你。:)