拉取房间成员快照(AudioBridge listparticipants)

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

用途与场景

查询 AudioBridge 房间的当前成员列表,作为事件推送之外的兜底快照。本页是 mqtt-janus-audiobridge-listparticipants 的唯一操作正本。通道、transaction、中心转发公共口径见 会话生命周期正本

使用位置

页面/功能 角色或空间分支
对讲房间页加入后的成员快照轮询(每 30 秒;页面可见且 SFU 在线时启用,单次 6 秒 deadline) 登录用户;已加入房间

端点

MQTT 发布 server/center-server/ptt/v1/forward/janus/to(回包按 transaction 首段 reply topic 回流)— 查询房间当前成员列表兜底快照(janus 动词 listparticipants)。

通道契约全量事实(直通白名单、消费方、转发与回包路由)见 MQTT 主题清单 · 静态 topic动态下行(物理桥与 transaction 回包路由);字段级契约见 yaml 详解 · ptt forward-janus-to;janus 转发链的业务语义见设备业务 · mqtt-bridge 设备消息链

请求报文 {janus:"message", session_id, handle_id, body:{request:"listparticipants", room:<talkGroupId>}}

动线与完成判据

  • 业务完成 = 收到含数组的 participants 应答。
  • 快照轮询的取消/暂停:页面不可见、SFU 掉线、MQTT 断开或连接更替时停发;单次在途 deadline 6 秒,到期放弃本轮。

错误与边界

  • 快照是兜底手段:成员变化的实时来源是 events 正本participantsChanged/participantLeft);Web 用 resumed/merge 事件合并快照与增量。
  • 与 join 的成功包结构不同:join 也带 participants,但由 join 正本 消费。

调用关系与资源清理

  • 时序:加入后周期执行;与 events 正本 共同维护成员列表。
  • 无需清理:请求式查询,无服务端状态。

已知缺口

participants 元素字段(id/display/muted 等)由 Janus 插件决定,源码不在本工作区;Web 归一化逻辑可容错但不构成字段级契约。未联调。