基于MQTT协议的设备动态注册
前提条件
1.
2.
3.
动态注册流程
1.
mqttClientId:clientId+"|authType=xxxx,random=xxxx,signmethod=xxxx,deviceName=xxx|"
mqttUserName: deviceId+"&"+productId
mqttPassword:sign_hmac(productSecret,content)
mqttClientId
参数 | 说明 |
---|---|
clientId | 客户端ID,可自定义,长度在64个字符内。建议使用设备的MAC地址或SN码,方便您识别区分不同的客户端 |
authType | 一型一密认证方式,固定为register即可 |
random | 随机数。您自定义随机数 |
signMethod | 签名算法。目前支持hmacmd5、hmacsha1、hmacsha256 |
deviceName | 设备名称,用于在注册设备时指定设备名称,不参与加签 |
组成结构:deviceId+"&"+productId
示例:device1&al123456789
计算方法:sign_hmac(productSecret,content)
提示
2.
结果码 | 消息 | 说明 |
---|---|---|
0 | CONNECTION_ACCEPTED | 动态注册成功。 |
3 | SERVER_UNAVAILABLE | 云端错误。请稍后再试。 |
4 | CONNECTION_ACCEPTED | 动态注册失败,鉴权未通过。请检查传入的mqttUserName和mqttPassword取值是否正确。 |
3.
推送Topic:
register/{produdctId}/{deviceId}/response
报文:
{
"deviceId": "device1",
"deviceName": "设备名称",
"deviceSecret": "3e4640b422d5231ad25c1bacf43127fd6e5192a523099f9fd4201d3d7ef723ae",
"productId": "davKQYR6S5JHdKOozxUyZb27R"
}
参数 | 说明 |
---|---|
deviceId | 注册成功的设备ID |
deviceName | 注册成功的设备名称 |
deviceSecret | 注册成功的设备密钥 |
productId | 产品ID |
加签代码示例(Java)
修改于 2024-08-21 07:07:24