Presença do usuário não atualiza o servidor ao sair por inatividade do usuário ou do navegador

Quando na mesma tela inserimos apenas canais que todos têm o onlyWhenActive padrão (que é true por padrão ao chamar channel.enter()) → a chamada errada é feita ao servidor ao ficar ocioso para atualizar esses canais

Como reproduzir

  • Primeiro desabilite o plugin de chat se o tiver habilitado (isso é importante porque os plugins de chat fazem uma chamada em todas as telas para .enter({onlyWhenActive: false} com a opção onlyWhenActive definida como false)

  • Adicione um canal para fins de demonstração. Escolhi topic-presence-display.js e adicionei isto:

  @on("init")
  _init() {
    this._presentChannel = this.presence.getChannel('/presence-idle-demo');
    this._presentChannel.enter();
  },
  • Abra qualquer tópico com o console de rede do navegador aberto → você deverá ver uma primeira chamada para /presence/update

  • Minimize a janela do navegador (com a aba de rede aberta) e espere um pouco mais de 10 segundos (este é o tempo de inatividade do navegador por padrão)

  • Abra o navegador novamente e observe a última chamada feita para /presence/update

Resultado atual:

Enquanto deveria ser leave_channels[]: /presence-idle-demo

Abri um pull request:

6 curtidas

Elogios pela depuração cuidadosa e por encontrar a causa raiz… revisaremos esta semana e veremos se podemos mesclar a correção!

6 curtidas

@david levou isso até a linha de chegada e agora está mesclado :tada:

Obrigado @AhmedLoud por levantar isso e enviar um PR :clap:

7 curtidas