从不同的命名空间加入命名空间

时间:2015-12-15 00:53:55

标签: javascript node.js websocket socket.io namespaces

所以,几乎我问的是,如何加入一个名为“在”不同命名空间内的命名空间?

def moveFile(root,number_of_files, to):

     list_of_file = os.listdir(root)

     list_of_file.sort()

    for file in list_of_file:
        name = root + str(file)

         dest = to + str(file)

         shutil.move( name, dest ) 

我能以某种方式获得这个吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

你不能轻易做到。与房间不同,名称空间不是动态的,并且在连接时确定。例如,您可以拨打io.connect(' / main');在前端。

连接完成后,套接字属于它所连接的命名空间。

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

答案 1 :(得分:0)

Xplouder 添加的内容比我在github上的原始评论(2012年)要多,因为我不再使用该库了。

参考:https://github.com/socketio/socket.io/issues/285#issuecomment-8962287

回想一下变量socket 一个名为namespace的属性, 是对的引用套接字的名称空间当前。我自2012年以来无法代表对API的更改。

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

console.log( socket.namespace === mainNamespace );
console.log( socket.namespace.name );
console.log( socket.rooms );

我建议您尝试手动更改socket.namespace,例如:

  

socket.namespace = chatNamespace;

如果你没有这样做,那么我认为套接字将加入/main/coolRoom而不是/chat/coolRoom,如你所料。

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