1
我寫的angularjs應用程序,並有一些問題。我的應用程序每次都使用套接字連接來獲取一些數據。出於這個原因我寫工廠(下面的代碼)。如何通過angularjs服務正確地重新連接到套接字?
var Service = {};
var ws = new WebSocket("url");
var timer;
Service.onMessage = function(message) { /* some code */};
Service.onClose = function() {
timer = $interval(function() {
ws = new WebSocket("url");
Service.connect();
}, 1000);
};
Service.onOpen = function() {
console.log("open");
if (timer) $interval.cancel(timer);
};
Service.onError = function(error) { /* some code */};
Service.connect = function() {
// (Re)connect
// Reattaching handlers to object
ws.onmessage = Service.onMessage;
ws.onclose = Service.onClose;
ws.onopen = Service.onOpen;
ws.onerror = Service.onError;
}
return Service;
我有什麼問題?爲了簡單起見,想象一下我的服務器已關閉。套接字連接也關閉了。之後,onclose事件將開始。但我不明白如何重新連接套接字。例如,我應該每隔1或5秒檢查一次連接。在我的代碼中,如果套接字關閉,我創建新的套接字對象並嘗試重新連接。我有什麼?當服務器啓動時,我有許多連接到套接字的對象。請幫幫我。我如何解決這個問題,例如,有一個對象(一個當前連接)?
感謝一個lib(工作正常:))!當然可能是我不寫你的代碼是正確的,而是一個對象,它也創建了許多對象。當套接字關閉時,重新連接函數創建新的套接字對象,在服務器關閉時無法連接。服務器啓動後,我可以看到,哈哈,不是魔術,而是數十個對象,它們帶着微笑連接到套接字。 但當然lib工作,我會閱讀(教)源圖書館,謝謝! –