设备接入(HTTP 协议)
这篇解决什么
HTTP 设备打哪几个路径、Token 从哪来。读完能对上 protocol: http 和 IotHttpProtocol,不要把请求打到管理端 48080。
产品 protocolType 填 http。先看 设备接入(概述)。注册规则见 设备动态注册。
示意图:认证拿 Token。上行路径把 method 写在 URL 后段。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 协议 | Vert.x HTTP | ruoyi-office/yudao-module-iot/yudao-module-iot-gateway/.../http/IotHttpProtocol.java |
| 认证 | POST /auth | IotHttpAuthHandler |
| 注册 | POST /auth/register/device | IotHttpRegisterHandler |
| 子设备注册 | POST /auth/register/sub-device/:productKey/:deviceName | IotHttpRegisterSubHandler |
| 上行 | POST /topic/sys/:productKey/:deviceName/* | IotHttpUpstreamHandler |
| 样例 | id: http-json,默认关,端口 8092 | application.yaml |
/auth 和 /auth/register/device 不带 Token。其它路径要 Authorization 头,值是认证接口发的设备 Token。子设备注册也要 Token(网关侧已认证)。
Token 密钥在 yudao.iot.gateway.token。默认只够本机,生产必须改 secret(配置要求足够长),expiration 样例 7d。
上行:URL 星号段把斜杠换成点,必须等于 body 里的 method。例如 .../thing/property/post 对应 thing.property.post。成功回 messageId。
可配 ssl(证书路径在实例的 ssl 块)。下行靠 IotHttpDownstreamSubscriber 订消息总线;HTTP 无长连接时,下行能力受协议限制,不要按 MQTT 那样理解推送。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
port | 样例 8092 | ProtocolProperties |
Authorization | 除注册 / 认证外必带 | IotHttpAbstractHandler |
method | body 与 URL 后段必须一致 | IotHttpUpstreamHandler |
不要打 /admin-api
这是网关端口上的设备口。管理端 /admin-api/iot/device 是给人用的。设备打 48080 会走登录态,不是这套 Token。
先 /auth 再上报
漏 Token 直接 token 不能为空。Token 过期重新 /auth,不要把过期值写死在固件里。
示意图:按本仓库实现画的时序。
配置与操作
yaml 开 id: http-json,protocol: http,默认口 8092。设备打网关,不要打管理端 48080。POST /auth、/auth/register/device 不带 Token;上行 POST /topic/sys/:pk/:dn/* 要 Authorization。URL 后段斜杠改点必须等于 body method。
Token 密钥在 yudao.iot.gateway.token,生产改 secret。HTTP 无长连接,下行不要按 MQTT 理解。开启见 IoT 功能设计。

本系统截图:IoT 首页。协议实例在网关 yaml,没有「MQTT / HTTP」独立菜单。
