Benutzerpräsenz wird bei Inaktivität des Benutzers oder Browsers nicht auf dem Server aktualisiert.

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 Option onlyWhenActive auf false setzen).

  • Fügen Sie einen Kanal zum Zweck der Demo hinzu. Ich wähle topic-presence-display.js und 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/update sehen.

  • 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/update an.

Aktuelles Ergebnis:

Während es leave_channels[]: /presence-idle-demo sein sollte.

Ich habe einen Pull-Request geöffnet:

6 „Gefällt mir“

Tolle Arbeit beim sorgfältigen Debugging und der Ermittlung der Grundursache … wir werden dies diese Woche überprüfen und sehen, ob wir die Korrektur zusammenführen können!

6 „Gefällt mir“

@david hat dies über die Ziellinie gebracht und es ist jetzt gemerged :tada:

Danke @AhmedLoud fürs Einreichen und Einreichen eines PRs :clap:

7 „Gefällt mir“