Skip to main content
api.apps.realtime(appId, { signal }) apre un flusso in tempo reale dei log, dello stato e degli eventi di sistema di un’app. È un async iterable: consumalo con for await. Gli esempi usano il client api di Creare il client. appId è l’id di una delle tue app: api.account.me() le elenca.

Eventi

Ogni evento ha event, data (il testo grezzo del frame) e id.

L’oggetto status

Terminare il flusso

Il ciclo termina da solo quando:
  • il server chiude la connessione in modo pulito (ogni connessione dura fino a 10 minuti);
  • il server invia REALTIME_DISCONNECTED;
  • esci dal ciclo con break;
  • chiami controller.abort() (il ciclo semplicemente termina, non lancia eccezioni).
Per continuare a osservare oltre i 10 minuti, apri un nuovo flusso quando il ciclo termina.

Riconnessione

Una connessione interrotta, o il server che delega la riconnessione al client (REALTIME_RECONNECT), riapre il flusso da sola:
  • fino a 3 volte di fila; qualsiasi evento logs o status azzera il conteggio;
  • ogni riapertura avviene almeno 5,5 s dopo l’apertura precedente, per restare sotto il ritmo dell’API di un’apertura ogni 5 secondi per app.
Oltre 3 riconnessioni fallite, il ciclo lancia un SquareCloudAPIError con NETWORK_ERROR.

Limiti ed errori

  • 5 connessioni simultanee per account e 30 per app, considerando tutti gli utenti. Superarle produce 429 REALTIME_MAX_CONNECTIONS o REALTIME_MAX_CONNECTIONS_APP.
  • Lo status HTTP viene controllato prima dello streaming, quindi questi errori (e il 404 per un’app sconosciuta) vengono lanciati alla prima iterazione.
  • Il timeout copre solo l’apertura, fino all’arrivo degli header della risposta. Il flusso in sé non ha timeout.

Prossimi passi

Snapshot

Backup e ripristino di app e database.

Riferimento API realtime

L’endpoint REST dietro questo stream.

Log dalla CLI

Lo stesso stream dal terminale.