La presenza dell'utente non aggiorna il server quando si esce a causa di inattività dell'utente o del browser

Quando nella stessa schermata inseriamo solo canali che hanno tutti onlyWhenActive predefinito (che è true per impostazione predefinita quando si chiama channel.enter()) → viene effettuata la chiamata errata al server quando si va in idle per aggiornare questi canali

Come riprodurre

  • Per prima cosa disabilita il plugin della chat se lo hai abilitato (questo è importante perché i plugin della chat effettuano una chiamata in tutte le schermate a .enter({onlyWhenActive: false} con l’opzione onlyWhenActive impostata su false)

  • Aggiungi un canale per scopi dimostrativi. Ho scelto topic-presence-display.js e ho aggiunto questo:

  @on("init")
  _init() {
    this._presentChannel = this.presence.getChannel('/presence-idle-demo');
    this._presentChannel.enter();
  },
  • Apri un qualsiasi argomento con la console di rete del browser aperta → dovresti vedere una prima chiamata a /presence/update

  • Riduci a icona la finestra del browser (con la scheda di rete aperta) e attendi poco più di 10 secondi (questo è il tempo di inattività predefinito del browser)

  • Riapri il browser e guarda l’ultima chiamata effettuata a /presence/update

Risultato attuale:

Mentre dovrebbe essere leave_channels[]: /presence-idle-demo

Ho aperto una pull request:

6 Mi Piace

Complimenti per il debug attento e per aver individuato la causa principale… esamineremo questa settimana per vedere se possiamo unire la correzione!

6 Mi Piace

@david ha portato questo a termine ed è ora unito :tada:

Grazie @AhmedLoud per aver sollevato questo problema e aver inviato una PR :clap:

7 Mi Piace