api.apps.realtime(appId, { signal }) ouvre un flux en direct des logs, du statut et des événements système d’une application. C’est un itérable asynchrone : consommez-le avec for await.
Les exemples utilisent le client api présenté dans Créer le client. appId est l’identifiant de l’une de vos applications : api.account.me() les liste.
Événements
Chaque événement aevent, data (le texte brut de la trame) et id.
L’objet status
Fin du flux
La boucle se termine d’elle-même lorsque :- le serveur ferme proprement la connexion (chaque connexion dure jusqu’à 10 minutes) ;
- le serveur envoie
REALTIME_DISCONNECTED; - vous sortez de la boucle avec
break; - vous appelez
controller.abort()(la boucle se termine simplement, elle ne lève pas d’erreur).
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.
SquareCloudAPIError avec NETWORK_ERROR.
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 levées à la première itération.
- Le timeout ne couvre que l’ouverture, jusqu’à l’arrivée des en-têtes de réponse. Le flux lui-même n’a pas de timeout.
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.

