¿Qué es una desconexión?
Por qué una conexión de stream podría desconectarse
- Un error de autenticación (como un token incorrecto o el uso de un método de autenticación equivocado).
- Se reinicia un servidor de stream del lado de X. Esto suele estar relacionado con un despliegue de código y, en general, debe preverse y diseñarse en consecuencia.
- Tu cliente no mantiene el ritmo con el volumen de Posts que entrega el stream o está leyendo data demasiado lentamente. Cada conexión de stream está respaldada por una cola de mensajes que se envían al cliente. Si esta cola crece demasiado con el tiempo, se cerrará la conexión.
- Tu cuenta superó tu cuota diaria/mensual de Posts.
- Tienes demasiadas conexiones redundantes activas.
- Un cliente deja de leer data de repente. Si la tasa de Posts leídos del stream cae repentinamente, se cerrará la conexión.
- Posibles problemas de red entre el servidor y el cliente.
- Un problema temporal del lado del servidor, mantenimiento y actualizaciones programadas. (Consulta la página de estado)
Entre los errores de desconexión más comunes se incluyen:
Anticipar desconexiones y reconectar
- Tu código debe detectar cuándo dejan de llegar contenido nuevo y el latido.
- Si eso sucede, tu código debe activar una lógica de reconexión. Algunos clientes y lenguajes permiten especificar un tiempo de espera de lectura (read timeout), que puedes establecer en 20 segundos.
- Tu servicio debe detectar estas desconexiones y reconectar lo antes posible.
- Aplica una retirada lineal ante errores de red a nivel TCP/IP. Estos problemas suelen ser temporales y tienden a resolverse rápidamente. Incrementa el retraso entre reconexiones en 250 ms en cada intento, hasta 16 segundos.
- Aplica una retirada exponencial ante errores HTTP para los cuales reconectar sea apropiado. Comienza con una espera de 5 segundos, duplicando cada intento, hasta 320 segundos.
- Aplica una retirada exponencial ante errores HTTP 429 Rate limit exceeded. Comienza con una espera de 1 minuto y duplica cada intento. Ten en cuenta que cada HTTP 429 recibido aumenta el tiempo que debes esperar hasta que el límite de tasa deje de estar vigente para tu cuenta.
Recuperación de datos perdidos
Límites de tasa y uso
- x-rate-limit-limit indica la cantidad de solicitudes permitidas que su cliente puede realizar durante la ventana de 15 minutos.
- x-rate-limit-remaining indica la cantidad de solicitudes realizadas hasta el momento en la ventana de 15 minutos.
- x-rate-limit-reset es una marca de tiempo UNIX que indica cuándo se reiniciará la ventana de 15 minutos, restableciendo x-rate-limit-remaining a 0.