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工作,我会阅读(教)源图书馆,谢谢! –