验证状态:存在关键缺口,不可作为完整契约发布。Web 发布与应答消费已源码核验;采集服务器是
server/{采集服务器 deviceNo}/data/v1/list-file-category-total的最终消费者,其源码不在本工作区,应答权威 schema、错误形态与完成语义缺证。 适用基线:源码归纳 @ 2026-09-14
回放入口页(($lng).$spaceId.playback/to-b-1)在设备在线状态就绪后,把已绑定采集服务器且 IoT 在线的设备按采集服务器分组,逐台服务器批量查询每台设备的文件分类总数(全部/视频/音频/图片/报警),写入 fileCategoryTotalList 供回放首页的设备卡片分类统计图消费。本页不承诺服务端过滤、分页或统计口径——这些属采集服务器契约(缺证)。前置链路见设备清单 listCache 正本与监看 list-online-status 正本。
| 页面/功能 | 角色或空间分支 |
|---|---|
| 回放入口页分组发送分类统计查询 | 登录用户;回放入口页 |
消费:按 deviceNo 取行,渲染分类统计图(剔除 all) |
— |
对应 inventory operationId:mqtt-list-file-category-total。
MQTT 请求 server/{serverDeviceNo}/data/v1/list-file-category-total(Web → Broker → 采集服务器直连,应答按 reply topic 回流;中心网关不消费)— 按采集服务器批量查询每台设备的文件分类总数(全部/视频/音频/图片/报警)。
通道口径:该 topic 不在中心消费/发布点清单内(网关默认订阅清单无 server/+/data/#,见MQTT 主题清单 · 服务端订阅面);应答回流、凭据与 QoS 等 wire 约定见MQTT 连接与消息边界。
请求形态 {id, reply, params:{deviceNos, categories}}(不带 replyNumberMax/replyInterval,即默认单次应答);按采集服务器分组、逐台串行发布。
| 层级 | 判据 |
|---|---|
| 发布完成 | publishAsync Promise 成功;仅代表 Broker 受理,不代表采集服务器收到或完成统计 |
| 应答到达 | reply topic 收到应答且 data 可解析,fileCategoryTotalList 更新 |
| 空结果 | data 缺失或非数组按 [] 写入(getReplyRows) |
| 超时 | 无内置请求超时;deviceStatusList 变化(throttle 100ms)触发整批重发,无失败终态 |
deviceStatusList 触发补偿;MQTT 断线由自动重连补偿(clean)。dataAcquisitionServer 缺失)或其 IoT 离线时整台跳过,页面上表现为该设备无统计行。replyNumberMax/replyInterval 缺省时采集服务器的应答行为(单次或多帧)缺证。server/{no}/data/v1/# 发布、采集服务器订阅)待部署核验;未执行真实 Broker/采集服务器联调。