阿里云物联网平台--学习记录(一)
一般的MQTT服务器的连接注册方式
- 用户名:
- 密码:
- MQTT的服务器IP地址:
- 客户端ID:
阿里物联网平台的连接注册方式
阿里物联网平台使用了“三元组”:
- ProductKey
- DeviceName
- DeviceSecret
通过使用阿里云物联网平台的SDK,使用这个三元组就可以完成连接平台的工作;实际上是SDK屏蔽了连接MQTT的基本操作。按照MQTT服务器的基本操作,用户名和密码以及客户端IP是必须的,但是在使用SDK的过程中并没有接触到。
通过交流知道了阿里云物联网平台的连接操作:
参数
阿里云物联网平台参数
UserName
{DeviceName}&{ProductKey}
PassWord
如下示例
ClientID
{随便定}|securemode=3,signmethod=hmacsha1,timestamp=789|
IP
{ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com
知道了以上的知识,就可以用连接普通MQTT服务器的方式连接阿里云物联网平台服务器了。
PassWord生成
一般来说,hmac_sha1进行编码时会有两个参数:Key和value。
- Key对应三元组中的:DeviceSecret
- value就要复杂一点(XXXX,替换成实际的值):clientIdXXXXdeviceNameXXXXproductKeyXXXXXXtimestamp789
C语言:
password = hmacsha1("secret","clientId168.207.115deviceNameMQTT1productKeyTKKMt4nMF8Utimestamp789").toHexString();
Python语言:
import hmac
from hashlib import sha1
def hmac_sha1(key, context):
hmac_code = hmac.new(key.encode(), context.encode(), sha1)
return hmac_code.hexdigest()