Qt编译并使用MQTT

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的”轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

下载地址:
链接: https://pan.baidu.com/s/1kevCjKW0DrOexVihF6lfnw
提取码: jtda

订阅发布

     订阅包含主题筛选器(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引用类类型。

      详细配置如上文件方式,自行了解。

代码测试

// 简易链接,具体查看官方文档
QMqttClient *m_client = new QMqttClient;
m_client->setHostname(xxx);
m_client->setPort(yyy);
m_client->connectToHost();

// signal 数据接收
// QMqttClient::messageReceived

https://download.csdn.net/download/automoblie0/11812878

作者:

喜欢围棋和编程。

 
发布于 分类 编程标签

发表评论

电子邮件地址不会被公开。