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.
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
TodoRealtimeEvent 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ésio.EOF); - llamaste a
Close.
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
logsostatusreinicia 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.
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_CONNECTIONSoREALTIME_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 primerNext. - Cuando
ctxno tiene deadline, el deadline deWithTimeoutsolo cubre la apertura, hasta que llegan los encabezados de la respuesta (TIMEOUTsi no llegan). El stream en sí no tiene más deadline que el dectx.
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.

