APP MQTT 常见问题排查
一、mqtt 意义
智慧行业APP接入mqtt 主要是为了实时的感知设备的上线,设备激活/解绑的实时性以及上层资产授权,权限变变更APP实时性更新。
二、mqtt行业连接
2.1 Mqtt三要素
clientId
拼接方式:$TAG$AccessId$TerminalId
TAG: 行业为industry,智家可以考虑为os
AccessId: Iot开发者平台云应用里的accessId,智家可以考虑为Appkey
TerminalId: 终端id,客户端控制
username
拼接方式:$Uid$Timestamp$TruncatedClientid
Uid: 涂鸦用户唯一标识
Timestamp: 时间戳
TruncatedClientid: 将Mqtt clientId按sha256处理后,截取8-16得到的字符串
password
拼接方式:HMAC-SHA256($CloudAppSecret, $AccessId$Username$Token)
CloudAppSecret: Iot开发者平台云应用里的秘钥, 智家可以考虑为AppSecret
AccessId: Iot开发者平台云应用里的accessId,智家可以考虑为Appkey
Username: Mqtt里面的username
Token: 用户登录后颁发的凭证token,智家可以考虑为sid
2.2 mqtt连接建立和订阅
三、常见问题排查
1、topic订阅失败,一般是鉴权不通过导致的,通常是uid不在家庭中或者用户组下;
2、订阅成功,mqtt消息收不到,一般排查发送是否正常,然后再排查客户端接收是否成功;