Javascript Socket.io:手动连接到命名空间并断开与命名空间的连接

Javascript Socket.io:手动连接到命名空间并断开与命名空间的连接,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我创建了一些按钮来连接和断开与我的命名空间的连接: <div id="message">no message</div> <button id="disNamespace1" type="button"> Disconnect from namespace1</button> <button id="disNamespace2" type="button"> Disconnect from namespace2</button&g

我创建了一些按钮来连接和断开与我的命名空间的连接:

<div id="message">no message</div>
<button id="disNamespace1" type="button"> Disconnect from namespace1</button>
<button id="disNamespace2" type="button"> Disconnect from namespace2</button>
<button id="conNamespace1" type="button"> connection to namespace1</button>
<button id="conNamespace2" type="button"> connection to namespace2</button>
我的服务器:

socketNamespace1 = io.of('/namespace1');
socketNamespace2 = io.of('/namespace2');

socketNamespace1.on('connection', function(mySocket){
    console.log('namespace1: new user ');
    mySocket.emit('msg:from:namspace1', 'msg:from:namspace1');
    mySocket.on('disconnect', function(){
        console.log('disconnecting from namespace1');
    }); 
});
socketNamespace2.on('connection', function(mySocket){
    console.log('namespace2: new user ');
    mySocket.emit('msg:from:namspace2', 'msg:from:namspace2');
    mySocket.on('disconnect', function(){
        console.log('disconnecting from namespace2');
    });
});
我的第一次连接和断开连接工作得很好,但是当第二次单击连接按钮时,它就不再工作了。有什么问题吗?

试试这个:

mySocket = io.connect('http://localhost:1337/namespace1', {'force new connection': true});
从socket.io文档:

调用时,它会为给定的URL创建一个新的管理器,并尝试 在后续调用中重用现有管理器,除非 多路复用选项以false传递。传递此选项相当于传递“强制新连接”:true


因此,socket.io可能会将您的第二个“socket.connect()”视为后续调用…

我没有这个问题,因为我已升级到socket.io v1。谢谢
mySocket = io.connect('http://localhost:1337/namespace1', {'force new connection': true});