阿里云物联网平台CSDK源码剖析(2)
相关链接
阿里云物联网平台CSDK源码剖析(1)
阿里云物联网平台CSDK源码剖析(2)
阿里云物联网平台CSDK源码剖析(3)
IOT_Linkkit_Connect源码调用流程及剖析
调用流程如上图所示,IOT_Linkkit_Connect主要核心分为连接connect与订阅subcribe两大部分,其中订阅的topic均为物模型所需的topic。
iotx_dm_connect连接代码详解
iotx_dm_connect创建了设备与阿里云平台服务器的MQTT连接,所用的私密信息格式如下(选择的是Shanghai的domain及非TLS方式连接):
用户信息 | 格式 |
---|---|
ClientID | ${product_key}.${dev_name}|timestamp=2524608000000,_v=sdk-c-v3.0.1,securemode=3,signmethod=hmacsha256,lan=C,gw=0,ext=0| |
UserName | ${product_key}&${dev_name} |
Password | sha256(“clientId${product_key}.${dev_name}deviceName${dev_name}productKey${product_key}timestamp2524608000000”) |
HostName | ${product_key}.iot-as-mqtt.cn-shanghai.aliyuncs.com |
Port | 1883 |
iotx_dm_subscribe订阅代码详解
iotx_dm_subscribe订阅了g_dm_client_uri_map下的所有topic,大部分用于物模型的实现,各个topic的处理函数也包含在该数据结构之中。
总结
IOT_Linkkit_Connect将设备与云端服务器建立MQTT连接,并订阅大量主题用于物模型的实现。至此,物模型功能的环境已全部实现,后续便可以执行属性上报、事件上报、服务的功能。