背景介绍
目前 RT-Thread 的 paho-mqtt 软件包,是基于 pahomqtt 1.1.0 设计的一套 MQTT 客户端程序。从实际使用中,和论坛反馈中出现如下问题:
只支持 Qos=1,不支持 Qos=0 和 Qos=2 的情况;
数据发送可能出现粘包情况;
功能配置较少,且资源占用较高;
针对上述 mqtt 软件包实际使用问题,RT-Thread 推出 mqtt2.0 版本软件包,即 uMQTT 软件包,符合 MQTT 3.1.1 协议规范,并完善之前存在问题。
uMQTT 软件包介绍
框架图

umqtt_框架图
功能特点
保活机制
uMQTT 具有心跳断连,短时间内重试心跳连接功能
避免短时间内大量订阅发布消息与心跳请求冲突
重连机制
多种重连机制,为您网络连接的稳定性保驾护航。
连接过程中,连接失败进行多次重连尝试
保活机制失败后,进行多次重连尝试
数据接收失败后,进行多次重连尝试
多客户端
同时兼容多个客户端运行工作,便于同个设备连接多个服务器
同步异步
支持用户在复杂情况下订阅发布的需求。
支持同步订阅发送功能,保证开发请求数据同步
异步订阅发送,资源开销小,系统任务运行速率更高。
QOS0/1/2
完美支持 QOS 0/1/2 的订阅发布请求,让用户不用再关心信息的重发机制,直接交给软件包处理
订阅发布
支持基本的订阅发布功能,实现 mqtt 协议规定功能
多功能参数可配置可裁剪
重连时间间隔、重连次数、心跳周期、最大订阅数量、保活机制、重连机制等等参数功能可裁剪可配置,满足开发者再复杂、简单等各种开发环境下的使用需求
资源占用小
所有功能开启,占用空间足够小,适用低资源的 MCU

接口简单,使用方便
每个功能都有独立的接口,接口简单但功能完善,让开发者用最少的接口实现各类需求。
各类软件包对比


uMQTT 软件包获取
menuconfig 配置获取软件包和示例代码
打开 RT-Thread 提供的 ENV 工具,使用menuconfig配置软件包,
启用 uMQTT 软件包,并配置使能测试例程 (Enable MQTT example), 如下所示:
1RT-Threadonlinepackages 2IoT-internetofthings---> 3[*]umqtt:Alightweight,powerful,customizable,easy-to-useandembeddablemqttclientforRT-Thread.---> 4[*]EnableMQTTexample#开启UMQTT例程
使用 pkgs --update 命令下载软件包;
-
软件包
+关注
关注
0文章
117浏览量
12193 -
RT-Thread
+关注
关注
32文章
1658浏览量
45474
原文标题:使用RT-Thread uMQTT软件包,掌握 MQTT 开发新技能
文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
各种PLC设备、智能仪表快速实现OPC UA服务端(含客户端测试过程)
EtherCAT FOE工作原理揭秘:客户端-服务器模型如何运转?
为什么原厂越来越需要一套自己的 Studio
agile_ftp传输文件时客户端报错误怎么解决?
libmodbus库问题:TCP模式下客户端超时断开后无法再次重连怎么解决?
SOLIDWORKS PDM Professional安装部署指南:从服务器到客户端的详细步骤
【HZ-RK3568开发板免费体验】MQTT服务搭建与客户端移植
使用Windows Mesh客户端应用程序来观看CYBT-213043-MESH的环境温度信息,如何保存温度数据并将其传输到excel吗?
是否可以将客户端控件与CYW920706WCDEVAL一起使用?
CYBT-413061上的RFCOMM_Serial_Port SPP演示,AIROC客户端控制应用程序不起作用,什么原因引起的?
瘦客户端解决方案:树莓派电脑助力企业实现碳中和目标!
基于pahomqtt 1.1.0设计的一套MQTT客户端程序
评论