2013-04-30 59 views
1

我已經薩姆創建按鈕斷開連接並從我的命名空間斷開: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> 
<button id="conNamespace1" type="button"> connection to namespace1</button> 
<button id="conNamespace2" type="button"> connection to namespace2</button> 

,我處理這個按鈕是這樣的:

$('#conNamespace1').click(function(ev){ 
    mySocket = io.connect('http://localhost:1337/namespace1'); 
    mySocket.on("msg:from:namspace1", function(msg){ 
     $('#message').text(msg); 
    }); 
}); 
$('#conNamespace2').click(function(ev){ 
    mySocket = io.connect('http://localhost:1337/namespace2'); 
    mySocket.on("msg:from:namspace2", function(msg){ 
     $('#message').text(msg); 
    }); 
}); 

$('#disNamespace1').click(function(ev){ 
    console.log('trying disconnect'); 
    io.sockets['http://localhost:1337'].disconnect(); 
}); 
$('#disNamespace2').click(function(ev){ 
    io.sockets['http://localhost:1337'].disconnect(); 
}); 

我的服務器:

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'); 
    }); 
}); 

我的第一個連接和斷開的工作很好,但是在CON點擊時第二次插入按鈕,它不會成爲任何工具。問題是什麼 ?

回答

0

試試這個:

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

從socket.io文檔:

調用時,它會爲給定URL的新經理,嘗試 重用現有的經理,隨後調用,除非 Multiplex選項傳遞爲false。通過此選項是相當於傳遞「強制新連接」:true

所以也許socket.io對待你的第二個「socket.connect()」作爲後續調用...

+0

我沒有這個問題,因爲我已經升級到socket.io V1。謝謝 – hamou92 2015-03-06 15:35:46