验证状态:已源码核验、未联调;Web 发送/消费与中心 Admin 转发(含凭据覆盖)已双侧核验;Janus Admin API 响应字段缺证。 适用基线:源码归纳 @ 2026-09-14
SFU 直播运行期间,Web 周期查询设备发布者句柄的插件信息,取其 subscribers 作为当前观看人数展示。这是 live-view 唯一走 Admin 通道的操作。公共口径见 会话正本;中心对 Admin 通道的转发边界另见Janus 信令边界。
| 页面/功能 | 角色或空间分支 |
|---|---|
| SFU 直播组件周期查询句柄信息(与 keepalive 同周期,每 3 秒执行) | 登录用户;提供了 publisher_session_id/publisher_handle_id(来自设备 pong) |
| 同组件消费应答 | 同上 |
对应 inventory operationId:mqtt-webrtclivejanus1-server-center-server-iot-v1-forward-janus-admin-to-07b80803。
MQTT 发布 server/center-server/iot/v1/forward/janus/admin/to(回包按 transaction 首段 reply topic 回流)— handle_info Admin API 请求,查询设备发布者句柄的订阅人数。
通道契约全量事实见 MQTT 主题清单 · 静态 topic与动态下行(物理 server/{janusNo}/admin/to);字段级契约见 yaml 详解 · forward-janus-admin-to;janus 转发链业务语义见设备业务 · mqtt-bridge 设备消息链。请求报文 {janus:"handle_info", plugin_only:true, admin_secret, handle_id:<publisher_handle_id>, transaction, session_id:<publisher_session_id>},transaction suffix 为 handle-info。注意查询目标是设备的 Janus 会话/句柄(来自 pong),不是 Web 自己的。
publishAsync 成功;查询结果以回包 topic 收到可解析 subscribers 为准。useInterval。publisher_session_id 与 publisher_handle_id 均 ≥1 才发送,否则跳过本次查询。admin_secret 由中心以服务端配置覆盖后注入物理转发——Web 传入值不生效,但该字段会经 Broker 传输;凭据真实值只在中心与 Janus 之间生效,属部署敏感配置。,handle-info, 的回包识别应答(期望事件回显 transaction,该回显行为属 Janus 实现,缺证);subscribers 缺省按 0 处理。handle_info 响应 schema(info.plugin_specific.*)、无 transaction 回包行为、权限失败形态源码不在本工作区。