Skip to main content
c.Apps.Realtime(ctx, appID) abre un stream en vivo de los logs, el estado y los eventos del sistema de una aplicación y devuelve un *squarecloud.Realtime. Es un iterador: llama a Next en un bucle hasta que devuelva un error, y ciérralo siempre con Close.
El ctx que se pasa a Realtime controla todo el stream: Next no recibe argumentos. Para detener desde otra goroutine un bucle bloqueado en Next, cancela ese ctx.

Eventos

Todo RealtimeEvent tiene Event, Data (el texto sin procesar del frame) e ID (el id del último evento, "" si no hay ninguno).

El struct Status

Finalizar el stream

Next devuelve io.EOF cuando:
  • el servidor cierra la conexión limpiamente (cada conexión dura hasta 10 minutos);
  • el servidor envió REALTIME_DISCONNECTED (primero se entrega el evento y después io.EOF);
  • llamaste a Close.
Cuando el ctx que se pasa a Realtime se cancela o pasa su deadline, Next devuelve el ctx.Err() sin envolver (context.Canceled o context.DeadlineExceeded), no un *APIError. Para salir del bucle tú mismo, basta con break: el Close diferido libera la conexión. Para seguir observando más allá de 10 minutos, vuelve a llamar a Realtime 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.
El Status combinado se conserva entre reconexiones. Tras 3 reconexiones fallidas, Next devuelve un *APIError con NETWORK_ERROR (estado 0).

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) los devuelve el propio Realtime, antes del primer Next.
  • Cuando ctx no tiene deadline, el deadline de WithTimeout solo cubre la apertura, hasta que llegan los encabezados de la respuesta (TIMEOUT si no llegan). El stream en sí no tiene más deadline que el de ctx.

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.