Skip to main content
api.apps.realtime(appId, { signal }) abre un stream en vivo de los logs, el estado y los eventos del sistema de una aplicación. Es un async iterable: consúmelo con for await. Los ejemplos usan el cliente api de Crear el cliente. appId es el id de una de tus aplicaciones: api.account.me() las lista.

Eventos

Todos los eventos tienen event, data (el texto sin procesar del frame) e id.

El objeto status

Finalizar el stream

El bucle termina por sí solo cuando:
  • el servidor cierra la conexión limpiamente (cada conexión dura hasta 10 minutos);
  • el servidor envía REALTIME_DISCONNECTED;
  • sales del bucle con break;
  • llamas a controller.abort() (el bucle simplemente termina, no lanza ningún error).
Para seguir observando más allá de 10 minutos, abre un nuevo stream cuando termine el bucle.

Reconexión

Una conexión caída, o que el servidor delegue la reconexión en el cliente (REALTIME_RECONNECT), reabre el stream por sí sola:
  • hasta 3 veces seguidas; cualquier evento logs o status reinicia el contador;
  • cada reapertura al menos 5,5 s después de la apertura anterior, para respetar el ritmo de la API de una apertura cada 5 segundos por aplicación.
Tras 3 reconexiones fallidas, el bucle lanza un SquareCloudAPIError con NETWORK_ERROR.

Límites y errores

  • 5 conexiones simultáneas por cuenta y 30 por aplicación, sumando todos los usuarios. Superarlas da 429 REALTIME_MAX_CONNECTIONS o REALTIME_MAX_CONNECTIONS_APP.
  • El estado HTTP se comprueba antes del streaming, así que estos errores (y el 404 de una aplicación desconocida) se lanzan en la primera iteración.
  • El timeout solo cubre la apertura, hasta que llegan los encabezados de la respuesta. El stream en sí no tiene timeout.

Próximos pasos

Snapshots

Respalda y restaura aplicaciones y bases de datos.

Referencia de la API de tiempo real

El endpoint REST detrás de este stream.

Logs desde la CLI

El mismo stream desde la terminal.