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()
方法。遗憾的是,它不再工作了,我不得不合并两个名称空间来解决这个问题。。。无论如何,谢谢你。:)不幸的是,它不再工作了,不得不合并两个名称空间,我不得不解决这个问题。。。无论如何,谢谢你。:)