api.apps.realtime(appId, { signal }) öffnet einen Live-Stream der Logs, des Status und der Systemereignisse einer App. Es ist ein Async Iterable: Verarbeite es mit for await.
Die Beispiele verwenden den Client api aus Client erstellen. appId ist die ID einer deiner Apps: api.account.me() listet sie auf.
Ereignisse
Jedes Ereignis hatevent, data (den rohen Text des Frames) und id.
Das Objekt status
Den Stream beenden
Die Schleife endet von selbst, wenn:- der Server die Verbindung sauber schließt (jede Verbindung dauert bis zu 10 Minuten);
- der Server
REALTIME_DISCONNECTEDsendet; - du mit
breakaus der Schleife aussteigst; - du
controller.abort()aufrufst (die Schleife endet einfach, sie wirft nicht).
Neuverbindung
Eine abgebrochene Verbindung, oder wenn der Server die Neuverbindung an den Client übergibt (REALTIME_RECONNECT), öffnet den Stream von selbst erneut:
- bis zu 3 Mal hintereinander; jedes
logs- oderstatus-Ereignis setzt den Zähler zurück; - jedes erneute Öffnen mindestens 5,5 s nach dem vorherigen, um unter dem Takt der API von einem Öffnen pro 5 Sekunden pro App zu bleiben.
SquareCloudAPIError mit NETWORK_ERROR.
Limits und Fehler
- 5 gleichzeitige Verbindungen pro Konto und 30 pro App, über alle Benutzer hinweg. Eine Überschreitung ergibt 429
REALTIME_MAX_CONNECTIONSoderREALTIME_MAX_CONNECTIONS_APP. - Der HTTP-Status wird vor dem Streaming geprüft, daher werfen diese Fehler (und 404 für eine unbekannte App) bei der ersten Iteration.
- Das Timeout deckt nur das Öffnen ab, bis die Antwort-Header eintreffen. Der Stream selbst hat kein Timeout.
Nächste Schritte
Snapshots
Apps und Datenbanken sichern und wiederherstellen.
API-Referenz für Realtime
Der REST-Endpunkt hinter diesem Stream.
Logs über die CLI
Derselbe Stream im Terminal.

