直播链路批量查询在线状态(list-online-status)

验证状态:已源码核验、未联调;Web 与中心消费者双侧核验。 适用基线:源码归纳 @ 2026-09-14

用途与场景

直播页(单直播/多直播/回放)按设备清单批量查询各客户端前缀(设备 iot/webrtc、采集服务器 file/iot)的在线快照,驱动设备列表在线筛选与状态角标。本页是实时监看域 operationId 的唯一操作正本,覆盖直播链路的请求参数/轮询/消费差异;topic 的 wire 契约(应答信封、重发语义、在线快照来源)与对讲链路共用同一中心消费者,正本见对讲 list-online-status

使用位置

页面/功能 角色或空间分支
单直播页设备前缀查询(envelope {replyNumberMax:3, replyInterval:3},忙 3 秒/闲 12 秒) 登录用户;单直播页
多直播页设备前缀查询(同 envelope,忙 3 秒/闲 12 秒) 登录用户;多直播页
回放页设备前缀查询(同 envelope 与参数构造) 登录用户;回放页

对应 inventory operationId:mqtt-list-online-status-server-center-server-iot-v1-list-online-status-24acc9b1

端点

MQTT 请求 server/center-server/iot/v1/list-online-status(应答按一次性 reply topic 回流,可声明多次重发)— 直播页按设备清单批量查询各客户端前缀的在线快照。

主题契约全量事实(方向、消费方、payload 归档口径)见 MQTT 主题清单 · 静态 topicyaml 详解 · list-online-status;该通道的业务语义(iot v1 信封、重发与在线快照来源)见设备业务 · mqtt-bridge 设备消息链。载荷形态 {id, reply, replyNumberMax, replyInterval, params:{mqttClientIdPrefixes}}(每台设备 device,{no},webrtcdevice,{no},iot,挂采集服务器再追加 server,{serverNo},fileserver,{serverNo},iot);wire 应答信封与对讲链路完全一致,见对讲正本的记录。

轮询语义:忙 3 秒直到 onlineStatusList 非空,闲 12 秒周期快照;设备列表变化即重查(单直播 )。

动线与完成判据

层级 判据
发布完成 publishAsync Promise 成功;失败静默(记日志)
应答到达 应答 topic 收到 status=200data 覆盖所询前缀
超时 请求无内置超时;由 3/12 秒轮询与 3 次重复应答补偿

错误与边界

  • 业务拒绝与技术失败形态见对讲正本·错误与边界
  • 前缀数量随设备清单线性增长(每台 2-4 项);中心按批 1000 键读缓存(OnlineStatusLookup.CACHE_BATCH_SIZE),超大规模清单的应答体积未核验。
  • 在线快照的写入源($SYS 事件族、Web 代报副作用)决定其延迟与失真,见report-category-info 正本·错误与边界

调用关系与资源清理

已知缺口

  1. 在线状态缓存写入源($SYS 客户端事件族)不属本域,状态延迟未量化(对讲正本同项缺口)。
  2. Broker ACL 与部署订阅清单一致性待部署核验;未执行真实联调。