Firebase onDisconnect jetzt nicht 100% zuverlässig?

8

Ich habe Firebase intensiv genutzt und sehe immer noch nur ein einziges Problem: onDisconnect ist meiner Erfahrung nach nicht zu 100% zuverlässig.

Wenn Sie einen Computer schließen, ohne zuerst das Fenster zu schließen oder den Browser zu schließen, wird der "Garbage Collector" manchmal Ihre onDisconnect ausführen lassen, manchmal nicht.

Meine Frage ist folgende: Ich benutze /.connected jetzt einfach nicht, ich benutze grundsätzlich ein einfaches

%Vor%

Ist etwas falsch mit diesem Ansatz? Stimmen wir zu, dass die Update-Parameter zum Zeitpunkt der Ausführung der Zeile und nicht vor dem Entladen des Fensters an den Server übergeben werden?

Hinweis: Ich versuche zufällig, einen Multi-Fenster-Status zu behalten, indem ich den folgenden Ansatz verwende, um den Status auf 1 zu belassen, wenn ein anderes Fenster geschlossen wird:

%Vor%

Ich weiß nicht, wie das zusammenhängen könnte, aber ...

MEINE LÖSUNG: Tatsächlich hatte ich gerade den Teil verpasst, in dem Sie erfahren, dass onDisconnect nur einmal ausgelöst wird. Um eine dauerhafte onDisconnect zu erhalten, müssen Sie grundlegende Persistenz implementieren.

%Vor%

Einfacher Anwendungsfall:

%Vor%

Und dann abbrechen:

%Vor%     
cwehrung 12.06.2013, 15:38
quelle

1 Antwort

5

Sie sollten immer die Operation onDisconnect () aufrufen, BEVOR Sie die Operation set () aufrufen. Auf diese Weise, wenn die Verbindung zwischen den beiden verloren geht, enden Sie nicht mit Zombie-Daten.

Beachten Sie auch, dass Sie in dem Fall, in dem die Netzwerkverbindung nicht sauber beendet wird, möglicherweise auf ein TCP-Zeitlimit warten müssen, bevor wir den Benutzer als weg erkennen und die Aufräumung der Verbindung auslösen können. Die Bereinigung wird ausgeführt, es kann jedoch einige Minuten dauern.

    
Andrew Lee 12.06.2013 17:22
quelle

Tags und Links