Wenn wir im selben Bildschirm nur Kanäle eingeben, die alle den Standardwert onlyWhenActive haben (der standardmäßig true ist, wenn channel.enter() aufgerufen wird) → wird der falsche Aufruf an den Server gemacht, wenn wir inaktiv werden, um diese Kanäle zu aktualisieren.
Reproduktion
-
Deaktivieren Sie zuerst das Chat-Plugin, falls Sie es aktiviert haben (dies ist wichtig, da Chat-Plugins in allen Bildschirmen einen Aufruf an
.enter({onlyWhenActive: false}mit der OptiononlyWhenActiveauf false setzen). -
Fügen Sie einen Kanal zum Zweck der Demo hinzu. Ich wähle
topic-presence-display.jsund füge Folgendes hinzu:
@on("init")
_init() {
this._presentChannel = this.presence.getChannel('/presence-idle-demo');
this._presentChannel.enter();
},
-
Öffnen Sie ein beliebiges Thema mit geöffneter Browser-Netzwerkkonsole → Sie sollten einen ersten Aufruf an
/presence/updatesehen. -
Minimieren Sie das Browserfenster (mit geöffnetem Netzwerk-Tab) und warten Sie etwas mehr als 10 Sekunden (dies ist die Standard-Inaktivitätszeit des Browsers).
-
Öffnen Sie den Browser erneut und sehen Sie sich den letzten Aufruf an
/presence/updatean.
Aktuelles Ergebnis:
Während es leave_channels[]: /presence-idle-demo sein sollte.
Ich habe einen Pull-Request geöffnet:
