O que é uma desconexão?
Por que uma conexão de streaming pode ser desconectada
- Erro de autenticação (como um token incorreto ou o uso de um método de autenticação incorreto).
- Reinício de um servidor de streaming no lado da X. Isso geralmente está relacionado a uma implantação de código e, em geral, deve ser esperado e considerado no design da solução.
- Seu cliente não está acompanhando o volume de Posts que o stream está entregando ou está lendo dados muito lentamente. Toda conexão de streaming é sustentada por uma fila de mensagens a serem enviadas ao cliente. Se essa fila crescer demais ao longo do tempo, a conexão será encerrada.
- Sua conta excedeu sua cota diária/mensal de Posts.
- Há muitas conexões redundantes ativas.
- O cliente para de ler dados de repente. Se a taxa de Posts lidos do stream cair repentinamente, a conexão será encerrada.
- Possíveis problemas de rede entre servidor e cliente.
- Um problema temporário no lado do servidor, manutenção ou atualizações programadas. (Verifique a página de status)
Erros de desconexão comuns incluem:
Antecipando desconexões e reconexões
- Seu código deve detectar quando o conteúdo novo e o keep-alive deixam de chegar.
- Se isso acontecer, seu código deve acionar a lógica de reconexão. Alguns clientes e linguagens permitem definir um tempo limite de leitura, que você pode configurar para 20 segundos.
- Seu serviço deve detectar essas desconexões e se reconectar assim que possível.
- Faça backoff linear para erros de rede no nível TCP/IP. Esses problemas geralmente são temporários e tendem a se resolver rapidamente. Aumente o atraso entre reconexões em 250 ms a cada tentativa, até 16 segundos.
- Faça backoff exponencial para erros HTTP em que a reconexão seja apropriada. Comece com uma espera de 5 segundos, dobrando a cada tentativa, até 320 segundos.
- Faça backoff exponencial para erros HTTP 429 (Rate limit exceeded). Comece com uma espera de 1 minuto e dobre a cada tentativa. Observe que cada HTTP 429 recebido aumenta o tempo que você deve aguardar até que o limite de taxa deixe de vigorar para sua conta.
Recuperando dados perdidos
Limites de requisições e uso
- x-rate-limit-limit indica o número de requisições alocadas que seu cliente pode fazer durante a janela de 15 minutos.
- x-rate-limit-remaining indica o número de requisições restantes na janela de 15 minutos até o momento.
- x-rate-limit-reset é um carimbo de data/hora UNIX indicando quando a janela de 15 minutos será reiniciada, redefinindo x-rate-limit-remaining para 0.