Loading

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.fxMQTTX

四、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

mosquitto

mosquitto.h

五、参考来源#

MQTT协议中文版

几个MQTT的知识点

作者:caojun97

出处:https://www.cnblogs.com/caojun97/p/16737233.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   eiSouthBoy  阅读(527)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu