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 haevent, 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).
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
logsostatusazzera 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.
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_CONNECTIONSoREALTIME_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.

