Ein EventSource (SSE) soll, um zu versuchen, um sich erneut auf unbestimmte Zeit?

Arbeite ich an einem Projekt zur Server-Sent-Events und haben einfach etwas Interessantes: Verbindungsverlust wird anders behandelt, zwischen Chrome und Firefox.

Auf Chrome 35 oder Opera 22, wenn Sie verlieren Ihre Verbindung zu den server, es wird versucht die Verbindung wiederherzustellen, auf unbestimmte Zeit alle paar Sekunden bis es erfolgreich ist. Auf Firefox 30, auf der anderen Seite, wird es nur einmal versuchen und dann müssen Sie entweder aktualisieren Sie die Seite, oder Sie behandeln das error-Ereignis ausgelöst und manuell verbinden.

Ich viel lieber den Weg von Chrome oder Opera funktioniert es, aber das Lesen http://www.w3.org/TR/2012/WD-eventsource-20120426/#processing-model, es scheint, als ob einmal die EventSource versucht wieder zu verbinden und nicht aufgrund eines Netzwerk-Fehler oder andere, sollte es nicht zu wiederholen, die Verbindung. Nicht sicher, ob ich Verständnis für die spec richtig, wenn.

Ich eingestellt wurde, erfordert Firefox-Nutzer, vor allem auf der Tatsache, dass Sie können nicht mehrere tabs mit einem event-Streams von der gleichen URL öffnen in Chrome, aber diese neue Erkenntnis wäre wahrscheinlich eher ein Problem. Obwohl, wenn Firefox verhält sich nach Skillung dann könnte ich auch arbeiten, um es irgendwie.

Edit:

Werde ich halten targeting für Firefox jetzt. Dies ist, wie ich bin-handling-verbindungen:

var es = null;
function initES() {
    if (es == null || es.readyState == 2) { //this is probably not necessary.
        es = new EventSource('/push');
        es.onerror = function(e) {
            if (es.readyState == 2) {
                setTimeout(initES, 5000);
            }
        };
        //all event listeners should go here.
    }
}
initES();
InformationsquelleAutor rhyek | 2014-07-03
Schreibe einen Kommentar