MQTT.fx 连接阿里云

MQTT.fx 连接阿里云

-v0.1 2021.6.29 Hans draft

官网教程:https://help.aliyun.com/document_detail/86706.htm?spm=a2c4g.11186623.2.12.2d0e72e1W62HGZ#concept-d3l-fw3-p2b

在这里插入图片描述

Profile name ---- 自定义
Profile Type ---- MQTT Broker

MQTT Broker Profile Setting

Broke Address ----  根据下方截图获取
Broker     ------   证书认证型端口:8883    密钥认证型:1883
ClientID -----  固定格式:${ClientID}|securemode=${Mode},signmethod=${SignMethod}|
参数说明:

${ClientId}:设备、App或Web等场景下的Client ID信息,可自定义,长度在64个字符以内。多数情况下为设备的ID信息,建议使用您设备的MAC地址或SN码。
${Mode}:安全模式。
securemode=3:TCP直连模式,无需设置SSL/TLS信息。
securemode=2:TLS直连模式,需要设置SSL/TLS信息。
${SignMethod}:算法类型,支持hmacmd5和hmacsha1。
注意
MQTT.fx的Client ID和设备的${ClientId},切勿混淆。
不要遗漏参数之间及最后的竖线(|)。
设置参数时,请确保参数值中或参数值的前后均没有空格。
输入Client ID信息后,请勿单击Generate。

User Credentials,设置User Name和Password

User Name ---- 由设备名DeviceName、and(&)和产品ProductKey组成。
固定格式:${DeviceName}&${ProductKey}

Password  ---- 通过选择的加密方法,以设备的DeviceSecret为密钥,将参数和参数值拼接后,加密生成Password。
注意
如果您使用的MQTT.fx版本,在粘贴Password后不显示具体的字符串,只要光标已从输入框的前部移至了后部,则表示粘贴成功,请勿重复粘贴。
请注意参数和参数值中字母的大小写。
可通过以下任一方法生成Password。

工具生成:
单击下载[Password生成小工具](https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/189223/cn_zh/1605168543507/MQTT_Password.7z?spm=a2c4g.11186623.2.17.cec373a82nXmx1&file=MQTT_Password.7z)

解压文件后,双击sign.html文件,根据网页提示,配置参数,生成password。

productKey、deviceName、deviceSecret:设备证书信息。可在控制台设备详情页查看。
timestamp:(可选)时间戳。
clientId:设备的ID信息,与MQTT.fx的Client ID中${clientId}一致。
method:选择签名算法类型,与MQTT.fx的Client ID中${SignMethod}一致。
通过加密函数手动生成,本文提供hmacsha1的加密Demo,请参见附录:加密Demo。
其中:

${productKey}${deviceName}${deviceSecret}:需替换为您的设备证书信息。
${clientId}:替换为MQTT.fx的Client ID中${clientId}

获取Broke Address — 根据官网教程拼接配置一直出现 mqttexception
在这里插入图片描述
在这里插入图片描述

设备端与阿里云IoT平台建立MQTT通道的CONNECT报文有三个关键参数:客户端标识符 (ClientId) ,用户名(User Name),密码(Password)。这三个参数由设备三元组(productKey,deviceName,deviceSecret)按照阿里云IoT签名规则生成。 参数 生成方式 描述 username deviceName+"&"+productKey password sign_hmac(deviceSecret,content) sign_hmac为mqttClientId中的signmethod content为 "clientId${id}deviceName${deviceName}productKey${productKey}timestamp${timestamp}" 其中 id:表示客户端ID,64字符内。 timestamp:表示当前时间毫秒值。 clientId id+"|securemode=3,signmethod=hmacsha1,timestamp="+timestamp+"|" id:表示客户端ID,64字符内。 timestamp:表示当前时间毫秒值。 securemode:表示安全模式:可选值有2(TLS加密)和3(非加密) signmethod:表示签名算法类型。支持hmacmd5,hmacsha1和hmacsha256 2. 三元组接入示例 2.1 设备三元组信息 设备三元组 productKey = a14Xib5kdYd deviceName = light1983432 deviceSecret = oLyaKqVxtRvjH284LdhqVgVUx1UPy6zq 建立MQTT连接时参数 clientId = SN1928339 timestamp = 1539421321846 signmethod = hmacsha1 2.2 参数生成结果 mqttClientId = SN1928339|securemode=3,signmethod=hmacsha1,timestamp=1539421321846| mqttUsername = light1983432&a14Xib5kdYd mqttPassword = b2488041f64f425016b467ee1c94959ebd592ad1 生成password的content content=clientIdSN1928339deviceNamelight1983432productKeya14Xib5kdYdtimestamp1539421321846 2.3 建立连接 mqttClientId作为MQTT客户端标识符 (ClientId) mqttUsername作为MQTT用户名(User Name) mqttPassword作为MQTT密码(Password) 在线Password生成算法验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值