api.apps.realtime(appId, { signal }) は、アプリのログ、ステータス、システムイベントのライブストリームを開きます。これは非同期イテラブルなので、for await で消費します。
サンプルでは、クライアントの作成で作成した api クライアントを使います。appId はあなたのアプリの ID で、api.account.me() で一覧できます。
イベント
すべてのイベントにはevent、data (生のフレームテキスト)、id があります。
status オブジェクト
ストリームの終了
ループは次の場合に自動的に終了します:- サーバーが接続を正常に閉じたとき (各接続は最大 10 分続きます)
- サーバーが
REALTIME_DISCONNECTEDを送信したとき - ループから
breakしたとき controller.abort()を呼び出したとき (ループは単に終了し、例外はスローされません)
再接続
接続が切れた場合や、サーバーが再接続をクライアントに委ねた場合 (REALTIME_RECONNECT)、ストリームは自動的に再び開かれます:
- 連続 3 回まで。
logsまたはstatusのイベントを受け取るとカウントはリセットされます - API の制限 (アプリごとに 5 秒に 1 回のオープン) を下回るよう、各再オープンは前回のオープンから最低 5.5 秒空けて行われます
NETWORK_ERROR の SquareCloudAPIError をスローします。
制限とエラー
- 同時接続数は、全ユーザー合計でアカウントごとに 5、アプリごとに 30 です。超過すると 429
REALTIME_MAX_CONNECTIONSまたはREALTIME_MAX_CONNECTIONS_APPになります。 - HTTP ステータスはストリーミングの前にチェックされるため、これらのエラー (および不明なアプリに対する 404) は最初の反復でスローされます。
- タイムアウトは、レスポンスヘッダーが届くまでのオープン処理のみが対象です。ストリーム自体にタイムアウトはありません。
次のステップ
Snapshot
アプリとデータベースをバックアップして復元します。
リアルタイム API リファレンス
このストリームが呼び出す REST endpoint。
CLI でログを表示
同じストリームをターミナルで表示します。

