WebSocket Connection timeout

Bin ich versucht zu implementieren failsafe-websocket-wrapper. Und das problem, das ich habe, ist der Umgang mit timeout-Fehler. Die Logik sollte sein: wenn der socket ist nicht geöffnet während $timeoutInMiliseconds - es muss geschlossen und wieder geöffnet $N-mal.

Ich bin etwas zu schreiben wie dieses.

var maxReconects = 0;
var ws = new WebSocket(url);
var onCloseHandler = function() {
    if ( maxReconects < N ) {
        maxReconects++;
        //construct new Websocket 
        ....
    }
};
ws.onclose = onCloseHandler;
var timeout = setTimeout(function() {
                console.log("Socket connection timeout",ws.readyState);
                timedOut = true;
                ws.close();  <--- ws.readyState is 0 here 
                timedOut = false;
},timeoutInMiliseconds); 

Aber das problem ist der Umgang mit timeout websockets richtige Weg ist - wenn ich versuche zu schließen nonconnected socket erhalte ich die Warnung in chrome :

"WebSocket-Verbindung zu 'ws://127.0.0.1:9010/timeout' ist fehlgeschlagen: WebSocket ist geschlossen, bevor die Verbindung hergestellt wird."

Und ich habe keine Ahnung, wie es zu vermeiden - ws-Schnittstelle hat kein Abbruch-Funktion .

Die andere Vorgehensweise habe ich versucht, ist nicht zu schließen socket-timeout auf, wenn es nonconnected, sondern nur Kennzeichnen, dass Sie nicht mehr verwendet werden, und schließen Sie es, wenn Sie es erhalten readyState mehr als eine - aber es können mögliche Undichtigkeiten und zu kompliziert für diese einfache Aufgabe.

InformationsquelleAutor Oleg | 2015-04-26

Schreibe einen Kommentar