¿Qué es una desconexión?
filtered stream, debes realizar una solicitud HTTPS y consumir el stream resultante durante el mayor tiempo que sea práctico. Nuestros servidores mantendrán la conexión abierta indefinidamente, salvo error del lado del servidor, una latencia excesiva del lado del cliente, problemas de red, mantenimiento rutinario del servidor o inicios de sesión duplicados. Con las conexiones a endpoints de streaming, es probable, y es de esperar, que se produzcan desconexiones y que se implemente lógica de reconexión.
Por qué una conexión de streaming puede desconectarse
- Un error de autenticación (como un token incorrecto o un método de autenticación equivocado).
- Se reinicia un servidor de streaming en el lado de X. Esto suele estar relacionado con un despliegue de código y, en general, debería esperarse y contemplarse en el diseño.
- Tu cliente no está manteniendo el ritmo con el volumen de Publicaciones que el stream está entregando o está leyendo los datos demasiado lentamente. Cada conexión de streaming está respaldada por una cola de mensajes que se envían al cliente. Si esta cola crece demasiado con el tiempo, la conexión se cerrará.
- Tu cuenta excedió tu cuota diaria/mensual de Publicaciones.
- Tienes demasiadas conexiones redundantes activas.
- Un cliente deja de leer datos de forma repentina. Si la tasa de Publicaciones que se leen del stream cae de repente, la conexión se cerrará.
- Posibles problemas de red entre el servidor y el cliente.
- Un problema temporal del lado del servidor, mantenimiento programado y actualizaciones. (Consulta la página de estado)
Los errors de desconexión más comunes incluyen:
Anticipar desconexiones y volver a conectar
- Tu código debe detectar cuándo dejan de llegar contenido nuevo y la señal de keep-alive.
- Si eso ocurre, tu código debe activar una lógica de reconexión. Algunos clientes y lenguajes te permiten especificar un tiempo de espera de lectura, que puedes configurar en 20 segundos.
- Tu servicio debe detectar estas desconexiones y volver a conectar tan pronto como sea posible.
- Aumenta el intervalo de forma lineal para 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.
- Aumenta el intervalo de forma exponencial para los errores HTTP para los que sea apropiado volver a conectar. Comienza con una espera de 5 segundos, duplicando en cada intento, hasta 320 segundos.
- Aumenta el intervalo de forma exponencial para errores HTTP 429 (Rate limit exceeded). Comienza con una espera de 1 minuto y duplica en cada intento. Ten en cuenta que cada HTTP 429 recibido incrementa el tiempo que debes esperar hasta que el límite de frecuencia deje de estar en efecto para tu cuenta.
Recuperar datos perdidos
Límites de tasa y uso
- x-rate-limit-limit indica el número de solicitudes asignadas que tu cliente puede realizar durante la ventana de 15 minutos.
- x-rate-limit-remaining indica el número 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.