Skip to main content
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 a event, 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).
Pour continuer à observer au-delà de 10 minutes, ouvrez un nouveau flux 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 logs ou status remet 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.
Au-delà de 3 reconnexions échouées, la boucle lève une 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_CONNECTIONS ou REALTIME_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.