2013-05-16 150 views
2

我'能夠通過這個代碼在服務器檢測時,客戶端斷開:如何重新連接從服務器到客戶端

self._session.socket.on("close", function() { 
    console.log("client disconnected");  
} 

但我怎麼可以嘗試重新連接到斷開客戶端?

回答

1

由於客戶端不在監聽websocket,而只是連接到服務器,所以無法從服務器連接到客戶端。

但是,您可以在您的客戶端將代碼重新連接到onclose(或只是close)事件中。通常這是通過用正確的參數重新創建客戶端中的WebSocket對象來實現的。

東西爲:

function connect(){ 
    var mywebsocket = new WebSocket("ws://(your url)"); 
    // ... my callbacks and functions... 
    mywebsocket.onclose = connect; // or arguments.callee 
} 
connect(); 

應能正常工作。 ;)

祝你好運。

1

如果客戶端由於某種原因斷開連接(互聯網連接中斷/服務器問題),它將自動重新連接。要查看已經進行了多少次嘗試或狀態,請看http://docs.meteor.com/#meteor_status

從版本0.6.3開始,如果互聯網斷開連接。一旦互聯網回來,它也會嘗試重新連接。

要從您的代碼重新連接到某處,您可以從客戶端運行Meteor.reconnect()

不幸的是,流星客戶端無法偵聽來自服務器的連接,因此服務器無法啓動重新連接,您需要某種連接到服務器才能向客戶端發送消息以執行某些操作,如重新連接。

相關問題