阿里云物联网MQTT-TCP接入通信步骤

阿里云物联网开通地址 https://www.aliyun.com/product/iot
阿里云物联网官方帮助文档(最详细)https://help.aliyun.com/product/30520.html
阿里云物联网MQTT-TCP接入通信操作步骤
 
MQTT客户端直连方法:
 
1.  推荐使用TLS加密接入。如果使用TLS加密,需要下载根证书。
 
2.  使用MQTT客户端连接服务器,连接方法,请参见开源MQTT客户端参考。
 
3.  MQTT接入参数详解:
 
参数名称详解

Keep Alive Interval
心跳时间取值范围为30至300秒,建议设置值高一些,避免网络不稳定。
 
连接参数
 
clientId: ${productKey}@@${deviceName}@@${signMethod}@@${timestamp};
 
username: ${productKey}&${deviceName};
 
password: doSign(content,deviceSecret);
 
生成password: content的值为将参数(ProductKey、DeviceName、timestamp和clientId)与对应的值,按照字母顺序升序排序, 然后将参数值依次拼接,在拼接后的字符串前后分别追加deviceSecret。doSign:即使用signMethod进行签名,生成password
signMethod签名方法支持:MD5, SHA-1, SHA-2, SHA-256。
timestamp:Unix时间戳,当前时间毫秒值。
假如productKey = pk001,deviceName = device001, timestamp = 123456789,signmethod=SHA-1,deviceSecret=secret001,
那么MQTT的参数如下:
 
clientId=pk001@@device001@@SHA-1@@123456789
username=pk001&device001
password=SHA-1(secret001clientIdpk001@@device001@@SHA-1@@123456789deviceNamedevice001productKeypk001timestamp123456789secret001).toHexString(); 加密后的Password为二进制转16制字符串,示例结果为:82f52379de6bf562a76cb610da101f00768a9e13
说明:如果多个设备使用同一个设备信息(ProductKey、DeviceName和DeviceSecret)同时用于连接,可能会导致客户端不规律上下线。这是因为新设备连接认证时,原使用该证书已连接的设备会被迫下线,而设备被下线后,又会自动尝试重新连接导致的。