Skip to main content
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 hat event, 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_DISCONNECTED sendet;
  • du mit break aus der Schleife aussteigst;
  • du controller.abort() aufrufst (die Schleife endet einfach, sie wirft nicht).
Um länger als 10 Minuten zuzusehen, öffne einen neuen Stream, wenn die Schleife endet.

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- oder status-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.
Nach 3 fehlgeschlagenen Neuverbindungen wirft die Schleife einen 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_CONNECTIONS oder REALTIME_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.