Como Definir o Backoff de Reconexão WebSocket do Discord para Conexões Instáveis
🔍 WiseChecker

Como Definir o Backoff de Reconexão WebSocket do Discord para Conexões Instáveis

Quando o cliente Discord perde a conexão com o servidor de voz ou texto, ele tenta reconectar automaticamente. Em redes instáveis, esse processo pode falhar repetidamente, impedindo o envio de mensagens, derrubando canais de voz e exibindo um ícone de carregamento giratório. A configuração de backoff de reconexão WebSocket controla quanto tempo o cliente espera antes de cada tentativa. Este artigo explica o que é o backoff, como ajustá-lo usando o console do desenvolvedor e quais configurações funcionam melhor para conexões instáveis.

Principais Conclusões: Backoff de Reconexão WebSocket para Conexões Instáveis

  • Console do Desenvolvedor > Local Override > connectionBackoff: Ajusta o atraso em milissegundos entre tentativas de reconexão para reduzir retentativas rápidas em redes instáveis.
  • Configurações do Usuário > Voz e Vídeo > Redefinir Configurações de Voz: Redefine todos os parâmetros de voz e conexão WebSocket para os padrões, caso configurações personalizadas causem problemas.
  • Windows 10 ou Windows 11 > Painel de Controle > Solucionador de Problemas de Rede: Diagnostica instabilidade de rede subjacente que desencadeia reconexões frequentes.

ADVERTISEMENT

O Que É o Backoff de Reconexão WebSocket no Discord?

O Discord usa conexões WebSocket para manter um link persistente entre seu cliente e seus servidores para mensagens em tempo real e atividade de voz. Quando a conexão cai, o cliente tenta reconectar automaticamente. O backoff de reconexão é o atraso que o cliente insere entre cada tentativa. Por padrão, o Discord usa um algoritmo de backoff exponencial que começa em 1 segundo e dobra a cada tentativa falha até um máximo de 60 segundos. Isso evita que o cliente sobrecarregue o servidor com retentativas rápidas quando a rede está temporariamente inativa.

No entanto, em conexões instáveis que caem com frequência, mas voltam rapidamente, o backoff padrão pode ser agressivo demais. O cliente pode esperar muito tempo entre as tentativas, causando atrasos perceptíveis na entrega de mensagens ou na recuperação de voz. Ajustar o backoff para um intervalo fixo mais curto pode reduzir esses atrasos. O Discord não expõe essa configuração na interface do usuário. Você deve modificá-la usando o Console do Desenvolvedor, uma ferramenta de depuração integrada acessível de dentro do Discord.

Pré-requisitos para Ajustar o Backoff

Antes de alterar o backoff, confirme se sua conexão é realmente instável. Uma conexão estável não requer alterações no backoff. Use as etapas a seguir para verificar a estabilidade da sua rede:

  • Abra o Prompt de Comando e execute ping -t google.com. Deixe-o rodar por 30 segundos. Se você vir “Solicitação expirou” ou picos acima de 300 ms, sua conexão está instável.
  • Abra o Discord e pressione Ctrl+Shift+I para abrir o Console do Desenvolvedor. Vá para a aba Network. Se você vir desconexões WebSocket frequentes (status 1006 ou 1001), o ajuste do backoff pode ajudar.

Passos para Definir o Backoff de Reconexão WebSocket no Discord

Estas instruções modificam o armazenamento local do Discord para substituir o valor de backoff padrão. A alteração se aplica apenas à sessão atual do cliente. Você deve repetir os passos após reiniciar o Discord se quiser que a configuração persista.

  1. Abra o Console do Desenvolvedor
    No Discord, pressione Ctrl+Shift+I no Windows 10 ou Windows 11. Se você estiver no macOS, pressione Command+Option+I. O painel do Console do Desenvolvedor abre no lado direito da janela do Discord.
  2. Mude para a Aba Console
    No topo do Console do Desenvolvedor, clique na aba Console. Esta aba mostra logs de JavaScript e aceita comandos.
  3. Acesse o Objeto Local Override
    Digite o seguinte comando no console e pressione Enter:
    window.webpackChunkdiscord_app.push([[Math.random()], {}, (req) => { window.webpack = req.c; }]);
    Este comando expõe o sistema de módulos interno do Discord. Você só precisa executá-lo uma vez por sessão.
  4. Encontre o Módulo de Conexão
    Digite o seguinte comando e pressione Enter:
    let modules = Object.values(window.webpack).filter(m => m?.exports?.default?.connectionBackoff !== undefined);
    Se o comando retornar um array com um elemento, prossiga. Se retornar um array vazio, o nome do módulo pode ser diferente. Tente:
    let modules = Object.values(window.webpack).filter(m => m?.exports?.default?.backoff !== undefined);
  5. Recupere o Valor Atual do Backoff
    Digite o seguinte comando e pressione Enter:
    let connectionModule = modules[0].exports.default; console.log(connectionModule.connectionBackoff);
    O console exibe o valor atual do backoff em milissegundos. O padrão é tipicamente 1000 (1 segundo).
  6. Defina um Novo Valor de Backoff
    Digite o seguinte comando, substituindo 2000 pelo valor desejado em milissegundos:
    connectionModule.connectionBackoff = 2000;
    Para conexões instáveis, use um valor entre 2000 e 5000 milissegundos. Valores menores causam retentativas mais frequentes, o que pode ajudar a recuperar mais rápido, mas pode aumentar o uso da CPU. Valores maiores reduzem a frequência de retentativas, mas aumentam o tempo de recuperação.
  7. Verifique a Alteração
    Digite console.log(connectionModule.connectionBackoff); novamente. Confirme que o console exibe seu novo valor. A alteração entra em vigor imediatamente para a próxima tentativa de reconexão.

Método Alternativo: Usando um Script Personalizado

Se você quiser que a configuração de backoff persista entre reinicializações do Discord, você deve executar os comandos toda vez que abrir o Discord. Você pode automatizar isso com um script de usuário usando uma ferramenta como BetterDiscord ou uma extensão de navegador que injeta JavaScript no cliente Discord. Este artigo não cobre ferramentas de terceiros porque elas violam os Termos de Serviço do Discord e podem levar à suspensão da conta. Use o método manual descrito acima.

ADVERTISEMENT

Se o Ajuste do Backoff Não Melhorar a Estabilidade

Alterar o backoff de reconexão é uma solução alternativa, não uma correção para o problema de rede subjacente. Se você ainda tiver desconexões frequentes após ajustar o backoff, o problema provavelmente está no hardware de rede, ISP ou região do servidor Discord.

Discord Desconecta a Cada 5 Minutos Mesmo Após Alterar o Backoff

Este sintoma indica que a conexão está expirando devido à perda de pacotes, não por causa do intervalo de backoff. Execute um teste de perda de pacotes usando o comando ping -n 100 google.com no Prompt de Comando. Se você vir mais de 2% de perda, entre em contato com seu ISP ou reinicie seu roteador. Além disso, no Discord, vá em Configurações do Usuário > Voz e Vídeo > Região do Servidor e selecione uma região mais próxima da sua localização física. Um servidor distante aumenta a latência e a perda de pacotes.

Bot Fica Offline Após Alteração do Backoff Não se Aplica a Bots

A configuração de backoff descrita neste artigo se aplica apenas ao aplicativo cliente Discord. Se você executa um bot do Discord, deve configurar o backoff de reconexão no código do seu bot usando o parâmetro reconnectDelay no construtor Client. Por exemplo, no discord.js: const client = new Client({ intents: [...], reconnectDelay: 2000 });. Bots não leem a substituição local do cliente.

Configurações do Usuário > Voz e Vídeo > Redefinir Configurações de Voz

Se você modificou anteriormente as configurações de voz ou usou plugins de voz de terceiros, redefinir as configurações de voz pode limpar parâmetros corrompidos que interferem na reconexão WebSocket. Vá em Configurações do Usuário > Voz e Vídeo, role até o final e clique em Redefinir Configurações de Voz. Esta ação restaura todas as configurações de voz e conexão para os padrões, incluindo o backoff. Você precisará reaplicar a substituição do backoff após a redefinição.

Item Backoff Padrão Backoff Personalizado para Conexões Instáveis
Atraso inicial 1000 ms (1 segundo) 2000 a 5000 ms
Atraso máximo 60000 ms (60 segundos) Mesmo que o inicial (atraso fixo)
Algoritmo Backoff exponencial Intervalo fixo
Persistência Integrado, persiste entre reinicializações Apenas na sessão, requer reaplicação
Efeito na CPU Baixo Ligeiramente maior devido a retentativas mais frequentes

Agora você pode ajustar o backoff de reconexão WebSocket no Discord para reduzir o tempo de recuperação em conexões instáveis. Se o problema persistir, execute um teste de estabilidade de rede e redefina suas configurações de voz em Configurações do Usuário > Voz e Vídeo. Para bots, configure o atraso de reconexão no código do seu bot usando o parâmetro reconnectDelay.

ADVERTISEMENT