一、MQTT简介
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、发布-订阅模式的消息传输协议。它最初是为低带宽和不稳定网络环境设计的,以支持物联网(IoT)设备之间的高效通信。
MQTT的工作方式基于发布-订阅模型,其中包含两个角色:发布者(Publisher)和订阅者(Subscriber)。发布者负责发送消息,而订阅者负责接收感兴趣的消息。
以下是MQTT的一些核心概念:
-
主题(Topic):消息在MQTT中使用主题进行发布和订阅。主题是一个用于标识消息类型或内容的字符串,订阅者可以通过订阅特定主题来接收与该主题相关的消息。
-
发布者(Publisher):发布者是消息的发送方。它将消息发布到特定的主题,然后经由MQTT代理服务器传递给所有订阅了该主题的订阅者。
-
订阅者(Subscriber):订阅者是消息的接收方。它通过订阅感兴趣的主题来接收相应的消息。订阅者可以选择订阅整个主题树或特定的子主题。
-
MQTT代理服务器(MQTT Broker):MQTT代理服务器是消息的中间件,负责接收来自发布者的消息,并将其传递给订阅者。代理服务器负责管理订阅关系、路由消息以及处理发布-订阅流程。
MQTT的特点包括:
-
轻量级:MQTT协议设计非常轻巧,传输的消息头部非常小,适合在带宽有限的网络环境下使用。
-
低能耗:由于消息头部小且通信量少,MQTT适用于低功耗设备,如传感器和物联网设备。
-
异步通信:MQTT支持异步通信模式,发布者和订阅者之间可以独立工作,无需实时连接。
-
发布-订阅模型:MQTT采用发布-订阅模型,允许多个订阅者同时接收消息,降低了系统的耦合性。
MQTT广泛应用于物联网领域,特别是在传感器网络、远程监控、智能家居和工业自动化等场景中。它提供了一种高效、可靠的消息传输机制,适应了物联网设备之间大规模通信的需求。
二、MQTT下载编译
Qt开发MQTT程序有两种方式,一个是Qt官方提供的基于MQTT的封装,Qt官方已经提供了对MQTT的封装,但是并没有正式加入到Qt的标准库里面,所以需要自己下载源码进行编译。
我这里的编译环境是:Qt5.14.1+qtmqtt-5.14.1
注意,编译这个源码之前需要安装perl,否则会报错:perl 不是内部或外部命令,也不是可运行的程序。
下载源码后得到如下文件,直接打开工程文件准备编译
安装完Perl后会自动写入环境变量, 这时候再次编译(Release模式)QtMqtt源码,编译完成后得到以下文件:
标签:订阅,Qt,编译,MQTT,消息,发布者 From: https://www.cnblogs.com/QingYiShouJiuRen/p/17466485.html