2013-05-13 55 views
37

我正在使用Socket.io,我想知道從客戶端連接到服務器的狀態。在Socket.io客戶端上獲取連接狀態

事情是這樣的:

socket.status // return true if connected, false otherwise 

我需要這些信息給予視覺反饋給用戶,如果連接已斷開或已斷開的任何理由。

+1

您是否使用列出的socket.io客戶端:https://github.com/LearnBoost/socket.io-client或簡單的socket.io庫? – Shubhansh 2013-05-13 09:11:07

+0

我正在使用Node.js提供的JavaScript文件,所以我認爲這是第一個。 – franzlorenzon 2013-05-13 09:31:02

回答

76

您可以檢查socket.connected屬性:

var socket = io.connect(); 
console.log('check 1', socket.connected); 
socket.on('connect', function() { 
    console.log('check 2', socket.connected); 
}); 

它的動態更新,如果連接丟失,直到客戶端再次拿起連接它會被設置爲false。所以很容易檢查setInterval或類似的東西。

另一種解決方案是捕獲disconnect事件並自行跟蹤狀態。

+2

它完美的作品。我沒有在文檔上找到這個屬性,所以感謝寶貴的信息;) – franzlorenzon 2013-05-13 10:21:05

+7

我通過console.log找到了'socket'變量;) – robertklep 2013-05-13 10:23:33

+0

Lol,我也應該這樣做。再次感謝:) – franzlorenzon 2013-05-13 10:25:12

4

您可以檢查wheather連接已經在使用此功能喪失或者不再見: -

var socket = io(/**connection**/); 
socket.on('disconnect', function(){ 
//Your Code Here 
}); 

希望它會幫助你。

相關問題