mqtt使用总结

本文介绍了MQTT协议的基本概念,包括主题层级、主题过滤、保留消息(retained)和服务质量(QoS)等级等内容。同时,还提供了客户端和服务端的配置示例,并推荐了几款常用的PC端MQTT客户端工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、简介

mqtt官网
–>
获取mqtt客户端和服务端
在这里插入图片描述

一、协议

特性

主题层级和主题过滤

/:主题分割符
#:多层通配符
+:单层通配符
$:单个字符匹配

retained

如果发送标记为retained消息,那么这条消息会被服务器记录,后面连接的设备服务器都会给其发送这条消息,重复发送这条消息会覆盖。

QoS

0:
1:
2:
3:

二、移植客户端

1、官网获取

在这里插入图片描述
在这里插入图片描述

2、Eclipse直接获取

根据项目需求获取对应源代码
mqtt客户端下载链接
支持功能
在这里插入图片描述
对应最新版本
在这里插入图片描述

希沃物联平台文档–mqtt协议错误码

三、服务

1、默认启动遇到的问题

在这里插入图片描述

2、配置示例:

匿名访问,无需设置用户密码

allow_anonymous true
port 1883
protocol mqtt

mosquitto官方网站
参考文档

四、PC端客户端

官网推荐的客户端PC
在这里插入图片描述

mqtt x
mqtt explorer
谷歌浏览器支持mqtt—MQTT-Lens

### MQTT 协议概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种专为资源受限环境和低带宽网络设计的轻量级消息传递协议[^1]。其核心目标是提供一种高效、可靠的方式,在物联网设备之间进行数据交换。 --- ### MQTT 的关键特性 #### 轻量化设计 MQTT 的设计理念强调简洁性和效率,使其非常适合运行在计算能力有限的硬件上,比如嵌入式设备和传感器。这种轻量化的设计减少了对内存和处理器的需求,同时也降低了网络带宽消耗。 #### 发布/订阅模式 不同于传统的客户端-服务器模型,MQTT 使用发布/订阅架构来实现设备间的解耦。在这种模式下,发送方(Publisher)将消息发布到特定的主题(Topic),而接收方(Subscriber)则订阅感兴趣的主题以获取相关消息。这种方式允许多个订阅者同时接收到相同的信息流,从而增强了系统的灵活性和扩展性。 #### 可靠的消息传递机制 为了适应不同应用场景下的需求,MQTT 提供了三种服务质量级别(QoS, Quality of Service): - **QoS 0**: 至少一次尝试交付消息,但不保证成功。 - **QoS 1**: 确保每条消息至少被送达一次,可能会重复。 - **QoS 2**: 实现最高级别的可靠性保障,确保每条消息仅被精确地投递一次。 #### 小型化开销 由于采用了紧凑的数据包结构,即使在网络条件较差的情况下也能保持较低延迟的操作性能。此外,默认情况下许多参数都设有合理的预设值,进一步简化了配置流程并减少额外负载[^2]。 #### 支持持久会话功能 当启用保留会话选项时,即便客户端暂时断线后再重新连接也不会丢失未完成的任务状态信息。这有助于维持长期稳定的服务体验尤其适用于移动终端频繁切换网络的情形之中。 --- ### MQTT 的主要用途 作为当前最流行的 IoT 技术之一,MQTT 广泛应用于各种领域中的实时监控与控制操作: - **智能家居系统**:通过远程操控家电产品或读取室内温湿度等环境指标; - **车联网解决方案**:支持车辆间以及车路协同通讯所需的大规模并发处理能力; - **工业自动化平台**:促进现场仪表仪器同云端管理后台之间的无缝对接交互过程; - **农业精准种植项目**:利用部署于田间的各类传感装置收集土壤水分含量等相关要素变化趋势图表展示出来便于农民及时调整灌溉策略等等[^1]. 以下是基于 EMQX Enterprise Docker 部署的一个简单实例脚本用于快速搭建测试环境验证上述理论概念的实际效果: ```bash sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl enable docker --now sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker docker pull emqx/emqx-enterprise:5.8.1 docker run -d --name emqx-enterprise \ -p 1883:1883 -p 8083:8083 \ -p 8084:8084 -p 8883:8883 \ -p 18083:18083 \ -v emqx_data:/opt/emqx/data \ -v emqx_log:/opt/emqx/log \ -v emqx_etc:/opt/emqx/etc \ emqx/emqx-enterprise:5.8.1 ``` 此部分展示了如何设置一个完整的 MQTT Broker 来实践前面提到的功能点[^3]。 --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值