Skip to main content
api.apps.realtime(appId, { signal }) 打开一个包含应用日志、状态和系统事件的实时流。它是一个异步可迭代对象:使用 for await 来消费它。 示例使用创建客户端中的 api 客户端。appId 是你的某个应用的 ID:api.account.me() 会列出它们。

事件

每个事件都有 event、data(原始帧文本)和 id。

status 对象

结束流

在以下情况下,循环会自行结束:
  • 服务器正常关闭连接(每个连接最长持续 10 分钟);
  • 服务器发送 REALTIME_DISCONNECTED;
  • 你使用 break 跳出循环;
  • 你调用 controller.abort()(循环直接结束,不会抛出异常)。
如需在 10 分钟后继续观察,请在循环结束时打开一个新的流。

重新连接

连接断开,或服务器将重新连接交由客户端处理(REALTIME_RECONNECT)时,流会自行重新打开:
  • 最多连续 3 次;任何 logs 或 status 事件都会重置计数;
  • 每次重新打开距上一次打开至少 5.5 秒,以保持在 API 每个应用每 5 秒打开一次的速率之内。
重新连接失败超过 3 次后,循环会抛出带有 NETWORK_ERROR 的 SquareCloudAPIError。

限制和错误

  • 每个账户 5 个并发连接,每个应用 30 个(涵盖所有用户)。超出时返回 429 REALTIME_MAX_CONNECTIONS 或 REALTIME_MAX_CONNECTIONS_APP。
  • HTTP 状态会在开始流式传输之前检查,因此这些错误(以及未知应用的 404)会在第一次迭代时抛出。
  • 超时只覆盖打开阶段,直到响应头到达为止。流本身没有超时。

后续步骤

Snapshots

备份和恢复应用与数据库。

实时 API 参考

这个流背后的 REST 端点。

用 CLI 查看日志

在终端中查看同样的流。