MQTT和 HTTP 一样属于应用层,它工作在 TCP/IP协议族上,通常还会调用 socket 接口。是一个基于客户端-服务器的消息发布/订阅传输协议。其特点是协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。MQTT 通信的角色有两个,分别是服务器和客户端。服务器只负责中转数据,不做存储;客户端可以是信息发送者或订阅者,也可以同时是两者。
我们在SDK程序中打开DEMO_MQTT宏定义,在主程序中创建MQTT任务。这里我们定义MQTT需要连接的服务器,发布、订阅的主题。
接下来分三步初始化MQTT连接
调用mqtt_subscribe API订阅消息:
开启一个定时器用于MQTT心跳包。
接收MQTT消息并且原样发出去。
首先打开一个MQTT调试助手,设置如下并先连接上MQTT服务器:
编译并下载程序到开发板,先输入配网指令
输入t-mqtt指令启动MQTT连接:
在MQTT调试助手上发送数据,可以看到数据返回: