验证状态:本页为接入视角新写(20 号票)。事实取材自 MQTT 清单层生成页与机构 / 零售手册已核验场景正本(设备固件为最终消费者、其源码不在本工作区,正本已标的设备侧缺口原样继承),本页自身不做二次核验、未联调。
设备需要订阅并处理的两类下行:应答 / 推送落点(deliver)与 Web 直连命令(configs 族,中心网关不消费、设备是最终消费者),以及收到应答后的文件上传与固件升级执行。这是接入动线的第三步。媒体域的下行(webrtc / ptt deliver)在媒体通道族,本页只讲 iot 面。
device/{deviceNo}/iot/deliver/v1 是设备侧应答 / 推送的统一落点(清单收录的动态下行发布点之一)——契约行见MQTT 主题清单 · 动态下行。从这里下行的两类载荷:
设备侧结论:订阅自身 device/{deviceNo}/iot/deliver/v1 是 iot 面的必备动作(receive 应答与推送共用该 topic)。
「让设备上传文件」的目标不是设备硬编码的,而是由中心经 retrieve upload/* 应答下发(上传 URL + 时间戳 + 混淆码)——零售手册已核验推断:设备固件无需也无处硬编码上传路径,见兼容候选;中心侧存储区的设备号视图(uploadByDeviceNo 等)见采集服务器接入 · 文件上报与检索。上传协议细节(URL 形态、鉴权、断点 / 重试)正本已标缺证(见下方已知缺口)。
items:["firmware"] 的应答携带最新固件包信息(经 deliver 落点下行)——触发方正本见触发设备固件与文件上报(retrieve),固件包管理面(HTTP,管理侧)见机构手册设备与资产域 · firmware-package。GET /main-service/main-api/v1/public/firmware/latest(免登录、分组外端点)——导航级引用与链接见设备身份与凭据。device/{deviceNo}/iot/configs/v1 是 Web → Broker → 设备直发的命令通道:中心网关不消费(属中心不消费的接入面,默认订阅清单无 device/+/+/configs/#,见MQTT 主题清单 · 服务端订阅面),设备是唯一消费者。同 topic 以 sub 区分三族命令,逐命令正本(Web 视角):
| sub | 命令语义 | Web 侧正本 |
|---|---|---|
get |
按 struct 名称批量读取设备运行信息与配置 | 读取设备配置(get-configs) |
set |
按 struct 名称写入配置修改 | 修改设备配置(set-configs) |
bcplus |
透传一条 BC+ 文本指令(抓拍、录像 / 录音开关、重启、WiFi 网络增删) |
发送设备 BC+ 原始指令(bcplus) |
行为规则(一句话点名,细节见各正本与设备业务 · mqtt-bridge):
reply topic 回流;Web 侧无超时、无重试约定——设备侧需自行定义应答时限与错误形态(正本已标「设备错误应答形态缺证」)。BC+APADD 密码以明文进入 payload;BC+ 指令集权威定义缺证(正本已标)。device/{deviceNo}/…)的授权与部署一致性待部署核验(各正本同款缺口)。