Limites e limites de taxa
Toda conexão do Gateway principal possui limites sobre o que envia, quanto tempo sua sessão vive, quantos comandos executa simultaneamente e quanto o Decoding Chat reproduz para ela. Exceder um limite fecha a conexão com um código de fechamento, descarta o payload ou ajusta o valor. O registro de motivos de fechamento define cada motivo exato.
Transporte e codificação
Seção intitulada “Transporte e codificação”Framing rege a versão do protocolo, o limite do payload e o contrato de compressão. Uma única mensagem WebSocket de entrada está limitada a 4.096 bytes brutos na rede e a mais 4.096 bytes após a descompressão; ultrapassar qualquer um desses limites fecha com 4002 e motivo Payload too large.
Uma mensagem comprimida que ultrapasse 10 MiB ao descomprimir fecha com 4002 e motivo Decompression failed.
Ciclo de vida da sessão
Seção intitulada “Ciclo de vida da sessão”O Hello anuncia um intervalo de heartbeat de 41.250 ms. O Gateway verifica o estado a cada 13.750 ms. Quando 37.125 ms decorrerem desde a última confirmação, o servidor envia o Opcode 1, ao qual o cliente deve responder imediatamente. Se nenhuma confirmação for aceita antes de 45.000 ms, a conexão fecha com 4009 e motivo Heartbeat timeout.
Não há prazo separado para autenticação. A regra de heartbeat é a responsável por fechar sockets que nunca se autenticam.
Uma sessão desconectada permanece retomável por 60.000 ms. Sua presença é publicada como offline 5.000 ms após a queda do socket. Um Resume bem-sucedido dentro da janela restaura o status previamente selecionado.
Uma credencial de usuário mantém no máximo 100 sessões ativas simultâneas. Identifys excedentes fecham com 4008 e motivo Too many sessions. Credenciais de bot são delimitadas pelo teto de servidores por shard (2.500 servidores por shard).
Limites de taxa de conexão e comandos
Seção intitulada “Limites de taxa de conexão e comandos”Valores padrão configurados:
- Por WebSocket: 600 payloads em janela deslizante de 60 segundos.
- Por sessão autenticada: 600 payloads em janela fixa de 60 segundos.
- Por IP de origem: 6.000 payloads em janela fixa de 60 segundos.
- Ultrapassar qualquer um desses orçamentos encerra a conexão com
4008e motivoRate limited.
Conexões simultâneas por IP: 256 conexões Gateway. Conexões adicionais fecham com 4008 e motivo Too many connections antes mesmo do envio do Hello.
Tentativas de Identify por IP: 300 tentativas em janela fixa de 60 segundos. Tentativas excedentes são descartadas silenciosamente sem resposta e sem desconectar o socket. O cliente deve reenviar quando o orçamento recuperar.
Presence Update: limite de 5 comandos por WebSocket em janela deslizante de 20 segundos.
Voice State Update: os 2 primeiros comandos por sessão em janela de 1 segundo são processados imediatamente. Atualizações subsequentes entram em uma fila por sessão com até 64 comandos (drenando 1 comando a cada 500 ms).
Request Guild Members: bots solicitando listas completas sofrem limite de 1 requisição aceita a cada 30 segundos por servidor. Requisições excedentes produzem o evento Rate Limited.
Comandos delimitados
Seção intitulada “Comandos delimitados”Um único WebSocket processa no máximo 4 comandos delimitados simultaneamente entre Request Guild Members, Lazy Request, Request Guild Counts e Request Channel Member Counts. Cada requisição possui prazo limite de 10.000 ms. Requisições recebidas quando todos os 4 slots estão ocupados são descartadas silenciosamente.
Replay e backpressure
Seção intitulada “Replay e backpressure”O histórico de retomada (Resume) retém no máximo 4.096 eventos de Dispatch e até 16.777.216 bytes (16 MiB no total). Ao ultrapassar qualquer um desses limites, os eventos mais antigos são descartados do início do buffer.
Dispatches individuais maiores que 2 MiB são entregues na conexão ativa mas nunca armazenados no buffer de replay.
Guild Members Chunk, Guild Sync e Guild Member List Update são entregues exclusivamente em tempo real e nunca entram no buffer de replay.
Heartbeats com número de sequência liberam da memória todos os Dispatches de sequência menor ou igual à informada. O cliente DEVE confirmar apenas sequências que já tenha terminado de processar.
Admissão de voz
Seção intitulada “Admissão de voz”Canais de voz em servidores admitem até user_limit usuários (0 = ilimitado). Canais com câmeras ativadas admitem no máximo 25 participantes no total. Conexões adicionais de vídeo recebem VOICE_CAMERA_USER_LIMIT.
Um usuário mantém no máximo voice_connection_limit conexões simultâneas no mesmo canal de voz (padrão 5, configurável entre 1 e 100 no canal).

