c.Apps.Realtime(ctx, appID) ouvre un flux en direct des logs, du statut et des événements système d’une application et renvoie un *squarecloud.Realtime. C’est un itérateur : appelez Next dans une boucle jusqu’à ce qu’il renvoie une erreur, et appelez toujours Close.
ctx passé à Realtime régit tout le flux : Next ne prend aucun argument. Pour arrêter depuis une autre goroutine une boucle bloquée dans Next, annulez ce ctx.
Événements
ChaqueRealtimeEvent a Event, Data (le texte brut de la trame) et ID (l’identifiant du dernier événement, "" s’il n’y en a pas).
La struct Status
Fin du flux
Next renvoie io.EOF lorsque :
- le serveur ferme proprement la connexion (chaque connexion dure jusqu’à 10 minutes) ;
- le serveur a envoyé
REALTIME_DISCONNECTED(l’événement est livré d’abord, puisio.EOF) ; - vous avez appelé
Close.
ctx passé à Realtime est annulé ou que son échéance est dépassée, Next renvoie le ctx.Err() brut (context.Canceled ou context.DeadlineExceeded), et non une *APIError. Pour sortir vous-même de la boucle, faites simplement break : le Close différé libère la connexion.
Pour continuer à observer au-delà de 10 minutes, appelez à nouveau Realtime lorsque la boucle se termine.
Reconnexion
Une connexion interrompue, ou le serveur qui confie la reconnexion au client (REALTIME_RECONNECT), rouvre le flux automatiquement :
- jusqu’à 3 fois d’affilée ; tout événement
logsoustatusremet le compteur à zéro ; - chaque réouverture au moins 5,5 s après l’ouverture précédente, pour rester sous le rythme de l’API d’une ouverture toutes les 5 secondes par application.
Status fusionné est conservé à travers les reconnexions. Au-delà de 3 reconnexions échouées, Next renvoie une *APIError avec NETWORK_ERROR (statut 0).
Limites et erreurs
- 5 connexions simultanées par compte et 30 par application, tous utilisateurs confondus. Les dépasser donne 429
REALTIME_MAX_CONNECTIONSouREALTIME_MAX_CONNECTIONS_APP. - Le statut HTTP est vérifié avant la diffusion, de sorte que ces erreurs (et 404 pour une application inconnue) sont renvoyées par
Realtimelui-même, avant le premierNext. - Lorsque
ctxn’a pas d’échéance, l’échéance deWithTimeoutne couvre que l’ouverture, jusqu’à l’arrivée des en-têtes de réponse (TIMEOUTs’ils n’arrivent pas). Le flux lui-même n’a pas d’échéance en dehors dectx.
Prochaines étapes
Snapshots
Sauvegardez et restaurez vos applications et bases de données.
Référence de l'API temps réel
L’endpoint REST derrière ce flux.
Logs depuis la CLI
Le même flux depuis le terminal.

