MQTT 概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。 订阅发布 订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。例如,如果客户端2订阅了主题A上的消息,则当客户端1发送关于该主题的消息时,它会收到通知。如果客户端3订阅了主题A和主题B,则它将接收有关这两个主题上的消息的通知。 ![]() 会话 每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。 主题 连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。 主题筛选 一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。这里通配略过。 负载 消息订阅者所具体接收的内容。 Qt MQTT 概述 Qt MQTT能够创建可以通过MQ遥测传输(MQTT)协议进行通信的应用程序和设备。它完全符合MQTT协议规范。Qt MQTT模块提供了MQTT协议规范的符合标准的实现。它使应用程序可以充当遥测显示器,并充当发布遥测数据的设备。支持的版本是MQTT 3.1,MQTT 3.1.1和MQTT 5.0。 Qt MQTT是不包含代理的客户端解决方案。它特别适合开发嵌入式设备的遥测应用。但是,Qt MQTT没有外部依赖性,因此,已实现的客户端可以在所有受支持的Qt平台上运行。 下载QtMqtt github地址:https://github.com/qt/qtmqtt git clone https://codereview.qt-project.org/qt/qtmqtt 编译QtMqtt mingw或msvc均可构建qtmqtt.pro 搭建环境 将构建出来的lib文件夹除了.a、.so、.lib、.dll文件外全部删除;将src内所有头文件提取,头文件修改为Qt引用类类型。 详细配置如上文件方式,自行了解。 代码测试 ![]() 已编译好的x64 库与头文件,百度云下载: 链接:https://pan.baidu.com/s/1I8xlUBcGyjvX4MRW3k6v9Q 提取码:eaom 本文同时发布在csdn,可前往了解并下载源码: https://blog.csdn.net/automoblie0/article/details/101296329 喜欢的话请点击右下角"在看"并分享给更多人。多谢,抱拳。 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:Qt开发者中心,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |