Errores y límites
Todos los errores tienen la misma forma:
json
{ "error": { "code": "session_ended", "message": "La sesión terminó; vuelve a conectar con un código nuevo" } }| Código | HTTP | Qué hacer |
|---|---|---|
validation_error | 400 | Revisa el cuerpo de la petición; message dice qué campo falla. |
unauthorized | 401 | Token inválido o caducado: vuelve a conectar. Para tu app, 401 y 410 significan lo mismo. |
invalid_code | 404 | El código no existe, ya se usó o caducó. Pide el que muestra el TV ahora. |
not_found | 404 | El envío no existe o es de otra sesión. |
session_ended | 410 | El TV se cerró o alguien más se conectó. Canjea un código nuevo. |
nothing_playing | 409 | Comando sin video en el TV (o detenido o fallido). Envía uno primero. |
cast_mismatch | 409 | El comando nombraba un castId y el TV ya reproduce otro video. Actualiza tu vista con el estado de reproducción. |
payload_too_large | 413 | El cuerpo supera 32 KB. |
rate_limited | 429 | Espera unos segundos. |
internal | 500 | Falla del servidor. Reintenta en un momento. |
Límites
| Qué | Límite |
|---|---|
| Canjear códigos | 10 por minuto por IP (las IPv6 cuentan por bloque /64) y 60 por minuto por red (/24 o /48) |
| Intentos fallidos de canje en todo el servicio | 600 por minuto; al pasarlo, las direcciones que ya fallaron un código no pueden reintentar hasta el minuto siguiente (quien no ha fallado se conecta normal) |
| Crear receptores | 20 por minuto por IP |
| Envíos | 60 por minuto por IP |
| Flujos de eventos abiertos, por servidor | 2 por receptor y 2 por sesión (al abrir otro se cierra el más antiguo), y 20 por IP (el siguiente recibe 429) |
| Peticiones por dirección | 1200 por minuto en total |
| Informes del receptor | 240 por minuto; el resto de sus peticiones, 120 por minuto |
| Comandos | 120 por minuto por IP |
| Tamaño de la petición | 32 KB |
| Longitud de cada URL | 4096 caracteres |
