1.简介
?以阿里云为例,在使用mqtt服务时,需要配置若干参数:
-
mqttClientId: clientId+“|securemode=3,signmethod=hmacsha1,timestamp=132323232|”
- mqttClientId:由cliendId、securemode、signmethod、timestamp组成,其中格式中" | |"内为扩展参数
- clientId:表示客户端ID,ID内容可以自定义
- securemode:安全模式,securemode为2表示TLS直连模式,securemode为3表示TCP直连模式
- signmethod:签名算法类型,支持hmacmd5,hmacsha1和hmacsha256
- timestamp:时间戳,表示当前时间毫秒值(也可以自定义)
-
mqttUsername: deviceName+“&”+productKey
- mqttUsername:由设备名称和产品key生成
- deviceName:设备名称
- productKey: 产品key
-
mqttPassword: sign_hmac(deviceSecret,content)
- mqttPassword:由deviceSecret和content组成,通过签名算法,生成一个password
- deviceSecret:设备密钥
- content:由mqttClientID、deviceName、productKey、timestamp生成
-
mqttAddr:productKey +”.iot-as-mqtt.”+REGION_ID+”.aliyuncs.com”
- mqttAddr:mqtt地址,需要填入productKey和REGION_ID(默认cn-shangghai)
-
serverPort:服务端口,例如1883 -
heartTime
-
订阅/发布主题
- 需要填入productKey和deviceName
- 订阅主题 get_topic :“/sys/{}/{}/thing/service/property/set”
- 发布主题 update_topic: “/sys/{}/{}/thing/event/property/post”
-
qos
- 服务质量(发送与接收端的一种关于保证交付信息的协议)
- qos=0:最多一次
- qos=1:最少一次
- qos=2:只一次
2.参数配置
配置方法一
步骤: (1)在阿里云物联网平台添加一个设备,获取它的ProductKey,DeviceName和DeviceSecret ?ProductKey: “a1iLJD0ZdOR”, ?DeviceName: “tem_hum”, ?DeviceSecret: “aadee76e1034f0ee69c4ade4398597f0” (2)设置mqttClientId ?令clienId为test、securemode为3、signmethod为hmacsha1、timestamp为132323232得到mqttClientId ?mqttClientId: “test|securemode=3,signmethod=hmacsha1,timestamp=132323232|”
(3)设置mqttUsername ?将deviceName和productKey填入得到mqttUsername ?mqttUsername:“tem_hum&a1iLJD0ZdOR”
(4)设置content ?根据mqttClientID、deviceName、productKey、timestamp得到content ?content:clientIdTestdeviceNametem_humproductKeya1iLJD0ZdORtimestamp132323232
(5)设置mqttPassword ? 算法加密. ?在明文处填入content,在密钥处填入deviceSecret,选择合适的签名算法,当前选择hmac-sha1 ?获取到哈希值,即mqttPassword:2a40cb578ca6e428dff12feea240c711d72ac3f4
(6)最终参数
- mqttClientId=“test|securemode=3,signmethod=hmacsha1,timestamp=132323232|”
- mqttUsername=“tem_hum&a1iLJD0ZdOR”
- mqttPassword=“2a40cb578ca6e428dff12feea240c711d72ac3f4”
- mqttAddr=“a1iLJD0ZdOR.iot-as-mqtt.cn-shanghai.aliyuncs.com”
- serverPort=1883
- heartTime=60
- get_topic = “/sys/a1iLJD0ZdOR/tem_hum/thing/service/property/set”
- update_topic = “/sys/a1iLJD0ZdOR/tem_hum/thing/event/property/post”
- qos=1
(7)填入参数 ?参考haas506 1.0 mqtt案例.将(6)中的参数填入到代码中的相应位置
配置方法二
步骤: (1)下载配置软件 ?链接: 配置软件下载.
(2)复制三元组数据 ?在阿里云物联网平台添加一个设备,找到设备证书,点击一键复制 (3)软件设置 ?将所复制的内容即三元组数据粘贴到软件界面指定位置,然后填写一下clientId和timeStamp,最后点击"生成"就可以获得阿里云mqtt配置参数。
?所需要的连接参数如下图所示:
(4)其他操作参考方法一
|