2013-04-26 38 views
0

我正嘗試從我的聊天中手動斷開我的客戶端。讓我告訴我的基本代碼:如何在Socket.io中強制斷開連接?

... 

<h1>welcome to my chat</h1> 

<script> 
$(function(){ 

    var mySocket = io.connect('/game1/roomGame); 

    $('#force').click(function(event){ 
    mySocketdisconnect(); 
    }) 


}); 
</script> 

在我的服務器:

mySocket.on('disconnect', function(){ 
      console.log(" disconnection forced "); 
    }); 

在我的控制檯,離開路線/game1/roomGame的時候,當然,我看到消息disconnection forced,但我敢肯定斷開是不是真的做到了,因爲我也看到我的控制檯中的某些消息,如:

debug - emitting heartbeat for client f8oj63XfQ7T8mbNFP8SR 
    debug - websocket writing 2:: 
    debug - set heartbeat timeout for client f8oj63XfQ7T8mbNFP8SR 
    debug - got heartbeat packet 
    debug - cleared heartbeat timeout for client f8oj63XfQ7T8mbNFP8SR 
    debug - set heartbeat interval for client f8oj63XfQ7T8mbNFP8SR 

我該如何關閉此連接?

回答

1

您想致電mySocketRoom.socket.disconnect()。暴露,作爲disconnect您的服務:

return { 
    ... 
    disconnect: function() { mySocketRoom.socket.disconnect(); } 
}; 

另外,如果您gameRoom只持續只要用戶是在一定的控制,$locationChangeStart$locationChangeSuccess顯得過於籠統。

只要控制器$ scope被銷燬,我就會斷開連接。

$scope.$on('$destroy', function() { 
    mySocketRoom.disconnect(); 
}); 

文檔:http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy

+0

它沒有解決我的問題:( – hamou92 2013-04-26 19:07:46

+0

OK,編輯以修復 – 2013-04-26 20:04:54

+0

當我想測試你的代碼,我已經適應吧:)。我認爲我的問題與Angulars.js無關。我認爲這是與Socket.io – hamou92 2013-04-26 20:22:50

相關問題