使用RT-Thread uMQTT软件包,掌握 MQTT 开发新技能

背景介绍

目前 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 软件包介绍

框架图

使用RT-Thread uMQTT软件包,掌握 MQTT 开发新技能_第1张图片

umqtt_框架图

功能特点

保活机制

  • uMQTT 具有心跳断连,短时间内重试心跳连接功能

  • 避免短时间内大量订阅发布消息与心跳请求冲突

重连机制 

多种重连机制,为您网络连接的稳定性保驾护航。

  • 连接过程中,连接失败进行多次重连尝试

  • 保活机制失败后,进行多次重连尝试

  • 数据接收失败后,进行多次重连尝试

多客户端

  • 同时兼容多个客户端运行工作,便于同个设备连接多个服务器

同步异步

支持用户在复杂情况下订阅发布的需求。

  • 支持同步订阅发送功能,保证开发请求数据同步

  • 异步订阅发送,资源开销小,系统任务运行速率更高。

QOS 0/1/2

  • 完美支持 QOS 0/1/2 的订阅发布请求,让用户不用再关心信息的重发机制,直接交给软件包处理

订阅发布

  • 支持基本的订阅发布功能,实现 mqtt 协议规定功能

多功能参数可配置可裁剪

  • 重连时间间隔、重连次数、心跳周期、最大订阅数量、保活机制、重连机制等等参数功能可裁剪可配置,满足开发者再复杂、简单等各种开发环境下的使用需求

资源占用小

  • 所有功能开启,占用空间足够小,适用低资源的 MCU

使用RT-Thread uMQTT软件包,掌握 MQTT 开发新技能_第2张图片

接口简单,使用方便

  • 每个功能都有独立的接口,接口简单但功能完善,让开发者用最少的接口实现各类需求。

各类软件包对比

使用RT-Thread uMQTT软件包,掌握 MQTT 开发新技能_第3张图片

uMQTT 软件包获取

  • menuconfig 配置获取软件包和示例代码

    打开 RT-Thread 提供的 ENV 工具,使用 menuconfig 配置软件包,
    启用 uMQTT 软件包,并配置使能测试例程 (
    Enable MQTT example), 如下所示:

1RT-Thread online packages
2    IoT - internet of things  --->
3        [*] umqtt: A light weight, powerful, customizable, easy-to-use and embeddable mqtt client for RT-Thread.  --->
4            [*] Enable MQTT example                     # 开启 UMQTT 例程
  • 使用 pkgs --update 命令下载软件包;

相关文档

  • uMQTT 软件包地址:https://github.com/RT-Thread-packages/umqtt.git

  • uMQTT 介绍文档地址:https://github.com/RT-Thread-packages/umqtt/blob/master/README.md

致谢

感谢网友 yuhaodi, lizhen, jiejie 的贡献及建议,在制作 uMQTT 时给与的帮助,提出了很多宝贵的意见。

你可以添加微信17775982065为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群!

RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。

长按二维码,关注我们

点击阅读原文,进入RT-Thread 软件包网站

点个“在看”,让知识流行起来

你可能感兴趣的:(使用RT-Thread uMQTT软件包,掌握 MQTT 开发新技能)