MQTT Broker
MQTT (Message Queuing Telemetry Transport)
一、MQTT介绍#
翻译MQTT官方介绍:
MQTT: The Standard for IoT Messaging
MQTT is an OASIS standard messaging protocol for the Internet of Things (IoT). It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth. MQTT today is used in a wide variety of industries, such as automotive, manufacturing, telecommunications, oil and gas, etc.
MQTT:物联网消息传递的标准
MQTT 是用于物联网 (IoT) 的 OASIS 标准消息传递协议。 它被设计为一种极其轻量级的发布/订阅消息传输,非常适合连接具有小代码足迹和最小网络带宽的远程设备。 如今,MQTT 被广泛用于各种行业,例如汽车、制造、电信、石油和天然气等。
1-1 MQTT的特点#
-
发布/订阅机制
-
基于TCP/IP协议(应用层协议)
-
报头开销极小(固定头部1字节)
-
可靠的消息分发机制(QoS)
-
支持比较差的网络环境(低带宽)
-
对控制设备硬件要求不高
-
安全的消息分发机制(OpenSSL)
-
Server/Client机制
1-2 MQTT的报头#
MQTT报文分为固定报头、可变报头、负载三部分
Fixed header | 固定报头,所有控制报文都包含 |
---|---|
Variable header | 可变报头,部分控制报文包含 |
Payload | 有效载荷,部分控制报文包含 |
固定报头用来表示MQTT报文的类型,可变报头来表示对应类型中的一些必要信息,负载部分用来表示具体的数据
固定报头分为类型和标志两部分,类型通过0-15的值来表示报文类型,标志位为固定值,每种类型的标志位都是一样的
1-3 MQTT的原理#
-
消息生产者:发布(生成)消息的客户端
-
消息消费者:订阅(消费)消息的客户端
-
服务器/代理/Broker:生产者和消费者的接入和释放;消息的转发
二、MQTT Broker#
MQTT Broker可以使用市面上已经封装好的开源免费应用软件,例如:EMQX
下载并解压emqx压缩包,开启emqx服务,在bin/目录下打开cmd.exe,emqx.cmd start
(关闭服务命令:emqx.cmd stop
)
注意:博主选择下载的是Windows版本
emqx提供Web可视化界面,浏览器访问:localhost:18083
👉 EMQX 启动失败
造成启动失败的原因是确实Windows组件:Microsoft Visual C++ 2015-2022,只要安装组件即可。
参考来源:Installation error on windows: unable to load emulator dll #8555
👉 emqx start as a service on windows10
以管理员权限启动 cmd.exe
,再emqx的bin文件夹下执行命令:emqx install
,服务卸载命令:emqx uninstall
三、MQTT的客户端#
MQTT Broker有了 EMQX,那么MQTT Client呢?
MQTT Client按照角色可以分为:生产者和消费者。
MQTT Client的免费客户端可以用:mqtt.fx
和 MQTTX
四、mosquitto#
mosquitto作为MQTT Broker的一种,普遍应用于Linux系统。
Ubuntu安装mosquitto:sudo apt-get install mosquitto
如果需要测试mosquitto,那么还需要安装 mosquitto-client:sudo apt-get install mosquito-clients
测试server(mosquitto) 和 client(mosquitto_sub、mosquitto_pub) 的连通性:
如果想在Ubuntu使用mosquitto库进行开发,那么就需要安装mosquitto依赖环境:sudo apt-get install libmosquitto-dev
五、参考来源#
作者:caojun97
出处:https://www.cnblogs.com/caojun97/p/16737233.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?