0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于pahomqtt 1.1.0设计的一套MQTT客户端程序

RTThread物联网操作系统 来源:RTThread物联网操作系统 2020-06-28 09:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

背景介绍

目前 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服务(含客户端测试过程)

    埃和智能网关支持各种PLC设备、智能仪表通过HTTP、MQTT协议JSON格式对接MES等系统平台,也可以对接MySQL等SQL数据库,还可将设备数据转为OPC UA服务,支持多客户端访问。包含
    的头像 发表于 04-30 13:48 210次阅读
    各种PLC设备、智能仪表快速实现OPC UA服务<b class='flag-5'>端</b>(含<b class='flag-5'>客户端</b>测试过程)

    EtherCAT FOE工作原理揭秘:客户端-服务器模型如何运转?

    上期我们聊了EtherCATFOE的五大应用场景,本期深入解析其底层工作机制。FOE究竟是如何实现文件传输的?答案藏在客户端-服务器模型中。核心架构:一客户端多服务器在EtherCAT网络中,FOE
    的头像 发表于 03-02 11:50 319次阅读
    EtherCAT FOE工作原理揭秘:<b class='flag-5'>客户端</b>-服务器模型如何运转?

    为什么原厂越来越需要一套自己的 Studio

    原厂开始认真思考: 是否需要一套真正属于自己的 Studio。 五、这不是工具趋势,而是生态趋势 当芯片本身越来越容易买到时, 真正形成差异的,往往是: 客户能不能更快、更少踩坑地把芯片用起来。 Studio,正在成为这个问题的
    发表于 02-05 09:37

    agile_ftp传输文件时客户端报错误怎么解决?

    ]客户端使用的filezilla [size=21.3333px] [size=21.3333px]现象: [size=21.3333px]filezilla客户端可以正常上传文件,但传输完毕时客户端会报
    发表于 11-05 10:49

    libmodbus库问题:TCP模式下客户端超时断开后无法再次重连怎么解决?

    进行次收发后断开连接,再次启动短连接进行通讯时被提示:”服务器拒绝“ 综上2种情况,libmodbus该如何修改才能让支持让断开的客户端再次连接? =
    发表于 10-14 08:17

    SOLIDWORKS PDM Professional安装部署指南:从服务器到客户端的详细步骤

    份详尽的SOLIDWORKS PDM Professional安装指南,面向IT管理员,涵盖从SQL Server配置、服务器安装到客户端设置的全过程,确保您高效、正确地完成PDM系统部署
    的头像 发表于 09-11 17:37 2154次阅读

    【HZ-RK3568开发板免费体验】MQTT服务搭建与客户端移植

    图中可以看出消息的订阅与发布,发小消息要带上主题和消息,MQTT客户端既可以是消息的发布者也可以是消息的订阅者。 MQTT协议的连接和会话 Figure ‑ MQTT协议的连接和会
    发表于 08-30 21:05

    Python modbus-tk如何获得客户端信息?

    Python modbus-tk如何获得客户端信息
    发表于 08-07 06:01

    使用Windows Mesh客户端应用程序来观看CYBT-213043-MESH的环境温度信息,如何保存温度数据并将其传输到excel吗?

    现在我正在使用Windows Mesh客户端应用程序来观看CYBT-213043-MESH的环境温度信息。 我的问题是有什么方法可以保存温度数据并将其传输到excel吗?
    发表于 07-04 08:16

    是否可以将客户端控件与CYW920706WCDEVAL起使用?

    是否可以将客户端控件与CYW920706WCDEVAL起使用? 我想用它来发现蓝牙 BR/EDR,然后将其与其他设备配对。 有客户端控制的下载链接或文档吗? 另外,你有 AIROC Connect 蓝牙应用
    发表于 07-04 07:50

    CYBT-413061上的RFCOMM_Serial_Port SPP演示,AIROC客户端控制应用程序不起作用,什么原因引起的?

    正常,但当启动客户端控制应用程序并打开串行端口时,却什么也没发生--所有控件都是灰色的。 然后,我还按照说明中的建议从 Windows 10 PC 上运行 BTSpy 并进行连接 - 客户端控制应用
    发表于 07-02 06:05

    Modbus TCP连接多个客户端解决方法-深圳市振鑫通信科技

    ZP-MBS008多主站模块是实现Modbus-TCP连接多个客户端或者服务器通讯设备
    的头像 发表于 06-25 11:07 2173次阅读
    Modbus TCP连接多个<b class='flag-5'>客户端</b>解决方法-深圳市振鑫通信科技

    请问Phy DLE Max TX Octets 由客户端还是服务器控制?

    Phy DLE Max TX Octets 由客户端还是服务器控制?
    发表于 06-25 08:28

    客户端解决方案:树莓派电脑助力企业实现碳中和目标!

    Losingthewires通过帮助企业转向RaspberryPi管理的瘦客户端,减少对台式电脑的依赖,使商业世界更加可持续,并助力企业实现碳中和目标
    的头像 发表于 06-22 20:33 845次阅读
    瘦<b class='flag-5'>客户端</b>解决方案:树莓派电脑助力企业实现碳中和目标!

    精通 MQTT:消息队列遥测传输指南!

    ,解释了其关键组件,并演示了如何使用Python实现MQTT客户端MQTT代理MQTT系统的核心是代理,它负责管理客户端之间的消息交换。
    的头像 发表于 06-16 16:56 1185次阅读
    精通 <b class='flag-5'>MQTT</b>:消息队列遥测传输指南!