查询对讲相关端在线状态(list-online-status)

验证状态:已源码核验、未联调;适用基线:源码归纳 @ 2026-09-14

用途与场景

通过平台 IoT v1 请求/应答消息批量查询 SFU(对讲服务器)与设备 PTT 客户端的在线状态。本页是 mqtt-refresh-server-center-server-iot-v1-list-online-status-163033bf 的唯一操作正本,覆盖对讲工作台/房间页对 server/center-server/iot/v1/list-online-status 的请求与应答契约。它提供的是周期快照,不是订阅式推送。

使用位置

页面/功能 角色或空间分支
工作台与房间页共享的在线状态适配器(每 12 秒周期 + 需求变化/手动刷新时触发) 登录用户的 MQTT 连接

端点

MQTT 请求 server/center-server/iot/v1/list-online-status(应答按 reply 回流,最多 4 次)— 批量查询 SFU 与设备 PTT 客户端的在线状态周期快照。

主题契约全量事实(方向、消费方、QoS、payload 归档口径)见 MQTT 主题清单 · 静态 topicyaml 详解 · list-online-status;在线状态缓存与保活供给(含每日凌晨对账)见设备业务 · mqtt-bridge 设备消息链

动线与完成判据

层级 判据
发布完成 publishAsync Promise 成功;失败被静默吞掉(依赖周期与重连补偿)
应答到达 应答 topic 收到 status=200data 覆盖所询前缀
状态确认 适配器把被应答覆盖的前缀标记为已确认,配合 MQTT 连接状态给出 live/stale 新鲜度

时序参数(已核验):触发 = 需求(前缀集合)变化、MQTT 重连、手动刷新、每 12 秒周期(TALKGROUP_ONLINE_STATUS_INTERVAL=12000);每次发布最多换回 4 次应答、间隔 3 秒;第 2 次起仅当请求 id 仍在线才继续应答(应答侧在线检查)。

错误与边界

  • params 缺失/非数组/空数组 → 业务异常状态经应答回传;技术异常回传固定 internal error 文案(应答信封行为,源码归纳)。
  • 应答最多 4 次(Web 设定);第 2 次起若 Web 端 id 对应缓存在线状态为 FALSE 则提前停止。
  • MQTT 断线期间展示"最后已知状态 + stale 新鲜度",恢复后自动重查(适配器 Alert 与 resetConfirmedPrefixes)。
  • 本操作是快照轮询,无资源占用;无订阅需要取消。QoS 不推出状态必达。

调用关系与资源清理

  • 无需显式清理;适配器卸载(clearDemand)即停止周期查询。
  • 下游消费:群组卡片在线徽标、房间页 SFU 可用门槛(的 availability.sfuOnline)。

已知缺口

  1. Broker ACL 与部署环境订阅清单一致性待部署核验。
  2. onlineStatusLookup 的缓存写入源($SYS 事件族)不属本票范围;状态延迟未量化。