非常详细的MQTT+TLS(四)----阿里SDK的使用

非常详细的MQTT+TLS----阿里SDK的使用

一、demo的下载

1、登录阿里云的控制台,找到文档与工具
在这里插入图片描述

2、定制自己的SDK,按着我的选择方式,我创建MQTT+SSL的线程一共使用了4K的堆栈(剩下100多Byte)PS:没有计算接受发送等Buf在内哈。
在这里插入图片描述

二、demo的使用

前面分别说明了MQTT和TLS的移植。当然,我们还可以选择给直接的办法,直接使用阿里云提供的SDK,阿里云上面提供的SDK模块化做的非常好,我们只需要修改一些与平台相关的文件就可以完美运行。如果你的系统是linux或者freeRTOS那就更简单了。我使用的系统是华为的liteOS,阿里云上的SDK是没有直接提供LiteOS对接的SDK的,所以我选择在FreeRTOS上移植。
在这里插入图片描述

首先找到阿里云对接系统的【freertos_port.c】文件,这里除了系统函数之外有一个比较重要的函数【core_sysdep_rand】,就是上面说的随机数生成函数,阿里SDK中给出的一个随机数生成接口是idf提供的硬件随机数生成接口, 仅适用于esp8266和esp32。我们需要改成我们自己平台的。在这里插入图片描述

还有和时间相关的几个函数,用于系统调度,其他的就是对接平台的互斥锁以及MQTT/MQTTs的发送接收连接等函数,自己改一下就可以了。感兴趣的话也可以看一下【g_aiot_sysdep_portfile】这个函数,虽然理解起来很简单,但是真的很巧妙,通过一个函数就把所有和平台相关的函数和逻辑代码分离,真的是佩服啊(流口水~)。
在这里插入图片描述

记得在MQTT中说了,对接平台的一共需要三部分,分别为:时间、系统(互斥锁)、Network。时间和系统的相关函数在freertos_port.c中已经配置了,还剩下一个Network,这部分函数在【net_sockets.c】中,这个文件其实是TLS库中携带的,如果你是支持开源的lwip当然也是不需要理会这部分的,但是如果刚好你和我一样,你对接Socket的库函数不是标准的Lwip库,你就自己去修改吧。
在这里插入图片描述


----------努力学习,乐于分享,欢迎讨论----------


猜你喜欢

转载自blog.csdn.net/qq_43448742/article/details/108266844