运行状态 · WebSocket
连接、鉴权及订阅限制见 WebSocket 概览。
订阅消息 (type: subscribe)
SEND
subscribe / status客户端 → 服务端
接收 status 事件,包括可用的当前状态及后续变化。只订阅状态时无需资产、计价币、周期和来源参数。不指定资产字段时,可以与全资产行情订阅共存。
确认消息: subscribed
消息字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 是 | 固定为 subscribe。可选值: "subscribe" |
id | string | 否 | 订阅 ID,默认 default。相同 ID 替换原订阅。默认值: "default" |
channels | string[] | 是 | 仅订阅本类数据时填写此值。 可选值: ["status"] |
推送消息 (e: status)
RECEIVE
status服务端 → 客户端
订阅 status 后,如果当前状态可用则立即推送,之后推送状态变化。计划维护状态包含 scheduledEndAt,其他状态可省略该字段。状态事件不受 symbol、quote、interval、source 筛选影响。连接中断时无法收到故障消息,请独立监测 GET /v2/_hc。来源可用性使用同一频道和消息封装:sourceStates 是订阅、重连和重新同步时的完整快照,sourceChange 是单个来源的状态变化,sourceView 说明如何应用它们。来源标识区分 realtime_ws 的交易所/交易对数据流与 history_rest 的交易对/周期能力,后者包含辅助数据提供方。
消息字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
e | string | 是 | 固定为 status。可选值: "status" |
E | integer | 是 | Oracle 推送时间,Unix 毫秒。 |
status | string | 是 | operational、planned_maintenance、partial_outage、full_outage。可选值: "operational", "planned_maintenance", "partial_outage", "full_outage" |
severity | string | 是 | info、warning 或 critical。可选值: "info", "warning", "critical" |
scope | object | 是 | 影响范围:system(布尔值)、assets(字符串数组)、sources(字符串数组)。全系统影响时不指定资产或来源。 |
scope.system | boolean | 否 | |
scope.assets | string[] | 否 | |
scope.sources | string[] | 否 | |
occurredAt | integer | 是 | 状态发生时间,Unix 毫秒。 |
scheduledEndAt | integer | 否 | 维护预计结束时间,Unix 毫秒。planned_maintenance 时必填,其他状态可省略。 |
message | string | 否 | 状态补充说明。 |
sourceStates | object[] | 否 | 按 id 排序的全部来源状态完整快照。当 sourceView.kind 为 snapshot 时,在订阅、重连和重新同步时发送。 |
sourceStates[].id | string | 是 | 稳定的范围标识(exchange/capability[/pair[/interval]])。 |
sourceStates[].scope | object | 是 | 单个来源范围的标识:一个交易所能力,可选地细化到交易对和周期。 |
sourceStates[].scope.exchange | string | 是 | 交易所 ID,例如 binance。 |
sourceStates[].scope.capability | string | 是 | 实时 WebSocket 数据流或历史 REST 能力。 可选值: "realtime_ws", "history_rest" |
sourceStates[].scope.pair | string | 否 | 交易所原生市场;交易所级范围时省略。 |
sourceStates[].scope.interval | string | 否 | 原生周期(1m、1h、1d);交易所级或交易对级范围时省略。 |
sourceStates[].state | string | 是 | 实时范围使用 starting、ok、reconnecting、reconfiguring、stale、maintenance;历史范围使用 healthy、observing、isolated、recovering;没有新报告时为 unknown;运维人员禁用该范围时为 disabled;实时范围从权威清单中移除时为 removed。 |
sourceStates[].freshness | string | 是 | 支撑该状态的 worker 报告是否为最新。 可选值: "fresh", "stale", "unknown" |
sourceStates[].reason | string | 否 | 状态不健康的原因(如适用)。 可选值: "maintenance", "upstream_unavailable", "transport", "request_timeout", "message_stale", "report_stale", "report_missing", "unverified", "stream_gap" |
sourceStates[].lastKnownState | string | 否 | 报告仍然新鲜时最后看到的状态,在 freshness 为 stale 或 unknown 期间保留。 |
sourceStates[].lastKnownReason | string | 否 | 与 lastKnownState 一同记录的原因。 |
sourceStates[].base | string | 否 | 交易对范围的基础资产。 |
sourceStates[].quote | string | 否 | 交易对范围的原生计价货币。 |
sourceStates[].enabled | boolean | 否 | 运维人员对该范围的启用设置;自动隔离不会修改它。 |
sourceStates[].observedAt | integer | 是 | 观测到该状态的时间,Unix 毫秒。 |
sourceStates[].changedAt | integer | 是 | 状态最近一次变化的时间,Unix 毫秒。 |
sourceStates[].lastMessageAt | integer | 否 | 实时范围:上游最近一条消息的时间,Unix 毫秒。 |
sourceStates[].lastTradeAt | integer | 否 | 实时范围:上游最近一笔成交的时间,Unix 毫秒。 |
sourceStates[].lastSuccess | integer | 否 | 历史范围:最近一次经验证的历史获取成功时间,Unix 毫秒。 |
sourceStates[].nextProbe | integer | 否 | 历史范围:下一次恢复探测的计划时间,Unix 毫秒。 |
sourceChange | object | 否 | 当 sourceView.kind 为 change 时的单个来源状态变化。即使整体服务状态未变,交易对的变化或恢复也会发送。 |
sourceChange.current | object | 是 | 一条共享的来源状态。REST 的 GET /v2/source-status 以 source_states 返回相同的状态,使用 snake_case 字段名和 RFC 3339 时间。 |
sourceChange.current.id | string | 是 | 稳定的范围标识(exchange/capability[/pair[/interval]])。 |
sourceChange.current.scope | object | 是 | 单个来源范围的标识:一个交易所能力,可选地细化到交易对和周期。 |
sourceChange.current.scope.exchange | string | 是 | 交易所 ID,例如 binance。 |
sourceChange.current.scope.capability | string | 是 | 实时 WebSocket 数据流或历史 REST 能力。 可选值: "realtime_ws", "history_rest" |
sourceChange.current.scope.pair | string | 否 | 交易所原生市场;交易所级范围时省略。 |
sourceChange.current.scope.interval | string | 否 | 原生周期(1m、1h、1d);交易所级或交易对级范围时省略。 |
sourceChange.current.state | string | 是 | 实时范围使用 starting、ok、reconnecting、reconfiguring、stale、maintenance;历史范围使用 healthy、observing、isolated、recovering;没有新报告时为 unknown;运维人员禁用该范围时为 disabled;实时范围从权威清单中移除时为 removed。 |
sourceChange.current.freshness | string | 是 | 支撑该状态的 worker 报告是否为最新。 可选值: "fresh", "stale", "unknown" |
sourceChange.current.reason | string | 否 | 状态不健康的原因(如适用)。 可选值: "maintenance", "upstream_unavailable", "transport", "request_timeout", "message_stale", "report_stale", "report_missing", "unverified", "stream_gap" |
sourceChange.current.lastKnownState | string | 否 | 报告仍然新鲜时最后看到的状态,在 freshness 为 stale 或 unknown 期间保留。 |
sourceChange.current.lastKnownReason | string | 否 | 与 lastKnownState 一同记录的原因。 |
sourceChange.current.base | string | 否 | 交易对范围的基础资产。 |
sourceChange.current.quote | string | 否 | 交易对范围的原生计价货币。 |
sourceChange.current.enabled | boolean | 否 | 运维人员对该范围的启用设置;自动隔离不会修改它。 |
sourceChange.current.observedAt | integer | 是 | 观测到该状态的时间,Unix 毫秒。 |
sourceChange.current.changedAt | integer | 是 | 状态最近一次变化的时间,Unix 毫秒。 |
sourceChange.current.lastMessageAt | integer | 否 | 实时范围:上游最近一条消息的时间,Unix 毫秒。 |
sourceChange.current.lastTradeAt | integer | 否 | 实时范围:上游最近一笔成交的时间,Unix 毫秒。 |
sourceChange.current.lastSuccess | integer | 否 | 历史范围:最近一次经验证的历史获取成功时间,Unix 毫秒。 |
sourceChange.current.nextProbe | integer | 否 | 历史范围:下一次恢复探测的计划时间,Unix 毫秒。 |
sourceChange.previousState | string | 否 | 变化前的状态;新观测到的来源省略该字段。 |
sourceChange.recovery | boolean | 是 | 先前故障的来源被验证为恢复健康时为 true。 |
sourceView | object | 否 | sourceStates 或 sourceChange 的来源信息;不携带来源视图的运行状态变化会省略该字段。 |
sourceView.schemaVersion | integer | 是 | 固定为 1。 |
sourceView.publisherId | string | 是 | 生成该视图的 API 发布者。 |
sourceView.epoch | string | 是 | 发布者的 epoch;发布者重启视图时变化。 |
sourceView.revision | integer | 是 | 在同一发布者 epoch 内单调递增。 |
sourceView.kind | string | 是 | snapshot 携带 sourceStates,change 携带 sourceChange。可选值: "snapshot", "change" |
sourceView.complete | boolean | 是 | 快照包含所有已知来源时为 true。 |
sourceView.observedAt | integer | 是 | 生成该视图的时间,Unix 毫秒。 |
sourceView.resync | boolean | 否 | 发布者检测到 revision 缺口并重新发布完整快照时设置。 |
