私はangularjsアプリを書いて、問題があります。私のアプリは毎回何らかのデータを取得するためにソケット接続を使用します。このため、私は工場(以下のコード)を書く。anglejsサービス経由でソケットにどのように正しく接続するのですか?
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秒ごとに接続を確認する必要があります。私のコードでは、ソケットが閉じている場合、私は新しいソケットオブジェクトを作成し、新たに接続しようとします。そして私は何を持っていますか?サーバーが起動しているとき、私はソケットに接続する多くのオブジェクトを持っています。私を助けてください。どのように私はこれを、たとえば、1つのオブジェクト(1つの現在の接続)を持つことができますか?
lib(ありがとう:)ありがとう!)!もちろん、私は正しいコードを書いてはいけないかもしれませんが、1つのオブジェクトでも、多くのオブジェクトを作成します。ソケットがクローズしているときに、再接続関数が作成され、サーバがダウンしている間に接続できない新しいソケットオブジェクトが作成されます。サーバーが立ち上がった後、私は魔法ではなく、笑顔でソケットに接続する数十のオブジェクトを見ることができます。 もちろん、libの仕事、そして私はこのライブラリのソースを読んで(教える)、ありがとう!!! –