0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是mqtt协议?MQTT支持几种应用模式?

lilihe92 来源:最后一个bug 2023-05-22 09:28 次阅读

最近项目中用到了MQTT,感觉挺优秀的一种协议,所以这里分享一些相关的知识。

1

什么是MQTT

MQTT是一种轻量级的消息传输协议,用于物联网设备和应用程序之间的通信。其最初由IBM开发,现在已成为开放的OASIS标准。

该协议基于发布/订阅模式(Publish/Subscribe Pattern),支持多种质量等级(Quality of Service,QoS),可以实现可靠的消息传输和传输后的可靠存储。

其主要特点如下:

1. 轻量级和低带宽:采用二进制编码和可变长度编码,使得消息头的大小尽可能小,能够在低带宽环境下进行高效的数据传输。

2. 灵活和可扩展:支持多种消息发布/订阅模式,能够灵活地适应不同的应用场景。同时,MQTT协议还支持多种质量等级,使得消息传输的可靠性和效率能够根据应用的需求进行调整。

3. 可靠性和安全性:支持消息的持久化和存储,能够保证消息的可靠传输和传输后的可靠存储。同时,还支持加密和认证等安全机制,能够保证消息的安全传输和处理。

4. 易于使用和实现:议规范简单明了,易于理解和实现。还提供了多种客户端库和开发工具,方便快速地使用和集成该协议。

2

MQTT开源库

1、paho-mqtt-c的开源的MQTT协议栈库,Paho MQTT 是 Eclipse 实现的基于 MQTT 协议的客户端。

2、uMQTT,uMQTT 软件包是 RT-Thread 自主研发的,基于 MQTT 3.1.1 协议的客户端实现。

3

MQTT协议的设计

MQTT的核心设计模式是发布/订阅模式(Publish/Subscribe Pattern),它是一种消息传递模式,用于解耦消息的发送者和接收者之间的关系。

在MQTT中,发布/订阅模式的实现包括以下几个核心概念:

1. 主题(Topic):主题是MQTT中消息的标识符,用于指定消息的内容和接收者。主题由一个或多个主题等级(Topic Level)组成,主题等级之间用斜杠(/)分隔。

例如,topic/a/b/c就是一个由三个主题等级组成的主题。

2. 客户端(Client):MQTT中的客户端是指连接到MQTT代理服务器的设备或应用程序,它可以是发布者(Publisher)或订阅者(Subscriber)。

3. 代理服务器(Broker):MQTT中的代理服务器是指负责接收、路由和转发消息的中间件。代理服务器会维护一个或多个主题,客户端可以向代理服务器发布消息或订阅主题。

4. 发布者(Publisher):MQTT中的发布者是指发布消息的客户端。发布者将消息发送到代理服务器,代理服务器会根据消息的主题将其路由到订阅了相应主题的订阅者。

5. 订阅者(Subscriber):MQTT中的订阅者是指订阅主题的客户端。订阅者向代理服务器订阅特定的主题,代理服务器会将订阅者订阅的主题和相关信息保存在订阅列表中。当有新消息发布到订阅者订阅的主题时,代理服务器会将消息发送给订阅者。

在MQTT的发布/订阅模式中,发布者和订阅者之间是解耦的,它们不需要知道对方的存在和身份,只需要知道相应的主题即可。

这种设计模式使得MQTT具有高度的灵活性和扩展性,能够适应不同的应用场景和需求。同时,MQTT还支持多种质量等级,可以根据应用的需求选择不同的质量等级,以实现消息传输的可靠性和效率。

4

几种应用模式

MQTT支持多种消息发布/订阅模式,常见的应用模式如下:

1. 点对点模式(Point-to-Point):在点对点模式下,MQTT客户端直接连接到MQTT代理服务器,通过MQTT协议进行消息的传输。

这种模式适用于直接连接的物联网设备和应用程序之间的通信,如传感器控制器之间的通信。

2. 发布/订阅模式(Publish/Subscribe):在发布/订阅模式下,MQTT客户端通过订阅主题(Topic)来接收感兴趣的消息,通过发布主题来发送消息。

这种模式适用于需要解耦消息发送者和接收者之间的关系的应用场景,如物联网中的实时数据传输、远程控制和状态监测等。

3. 请求/响应模式(Request/Response):在请求/响应模式下,MQTT客户端通过请求主题(Request Topic)向MQTT代理服务器发送请求消息,MQTT代理服务器将请求消息路由到相应的处理程序,并返回响应消息。

这种模式适用于需要请求和响应交互的应用场景,如物联网中的远程管理和控制等。

4. 点对多模式(Point-to-Multipoint):在点对多模式下,一个MQTT客户端可以同时连接到多个MQTT代理服务器,通过MQTT协议进行消息的传输。

这种模式适用于需要同时连接多个MQTT代理服务器的应用场景,如物联网中的分布式处理和数据存储等。

5

简单应用

下面以一个物联网温度监测系统为例,来说明MQTT的发布/订阅模式:

假设物联网温度监测系统包括多个温度传感器和一个温度数据中心,其中每个温度传感器都能够实时采集温度数据并将其发布到指定的主题上,温度数据中心则订阅了多个主题,能够实时接收并处理温度数据。

这个过程可以通过以下步骤来实现:

1. 温度传感器连接到MQTT代理服务器,并发布温度数据到指定的主题上,例如topic/temperature。

2. 温度数据中心连接到MQTT代理服务器,并订阅温度数据的主题,例如topic/temperature。

3. 当温度传感器发布新的温度数据到主题topic/temperature时,MQTT代理服务器将会将这条消息路由到订阅了该主题的温度数据中心上。

4. 温度数据中心收到新的温度数据后,可以对数据进行处理和存储,例如计算平均温度、生成报表等等。

通过这种方式,MQTT的发布/订阅模式实现了温度传感器和温度数据中心之间的解耦,不需要知道对方的存在和身份,只需要知道相应的主题即可实现实时的数据传输和处理。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 温度传感器
    +关注

    关注

    48

    文章

    2706

    浏览量

    154801
  • RT-Thread
    +关注

    关注

    31

    文章

    1200

    浏览量

    39060
  • MQTT协议
    +关注

    关注

    0

    文章

    92

    浏览量

    5273

原文标题:一种轻量级的消息传输协议-MQTT

文章出处:【微信号:最后一个bug,微信公众号:最后一个bug】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MQTT 协议开发入门

    一、简述MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级
    发表于 11-05 09:38

    MQTT 协议 开发入门

    ,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议
    发表于 11-07 15:51

    MQTT协议介绍与移植笔记

    # 硬件智能之 MQTT协议介绍与移植笔记(一)##MQTT是什么?MQTT(MessageQueuing Telemetry Transport Protocol)即全称消息队列遥感
    发表于 08-20 07:08

    MQTT是什么?MQTT协议的特点有哪些

    MQTT是什么?MQTT协议的特点有哪些?MQTT协议几种消息发布服务质量啊?
    发表于 09-29 07:43

    MQTT协议的相关资料推荐

    支持,同样的,在ApolloStudio中,这一标准协议也已被完整的集成在一起,使得ApolloStudio既可以作为MQTT Broker来提供MQTT数据交互中转站,也可以作为
    发表于 12-13 06:42

    MQTT协议的相关资料分享

    前言搞智能家居就不得不说到网络通信,因为我们需要通过各种终端去控制我们的智能家居设备,所以网络通信这方面是必备的.而在市面上比较流行的网络通讯协议就是MQTT通信协议.今天我们就简单聊聊如何什么叫
    发表于 01-20 07:11

    玩转mqtt协议的方法

    一过完年即将陷入一场恶战之中,可能无暇在玩这么多东西了,趁着过年把之前一直想搞的mqtt协议给玩一玩 。简单说一些mqtt协议MQTT(M
    发表于 02-16 06:48

    mqtt-v3.1.1版协议

    mqtt-v3.1.1版协议,英文版,时间2014.10.29,物联网通信协议MQTT
    发表于 10-29 11:22 0次下载

    干货:MQTT协议开发入门

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级通讯协议
    的头像 发表于 10-25 09:16 3209次阅读

    MQTT协议的主要特征是什么

    服务。因为MQTT协议具有重量轻,简单,开放,容易实现的特点。这些特性使得它的应用范围很广。 MQTT协议的主要特征。 1.使用发布/订阅信息模式
    发表于 05-13 15:00 2230次阅读

    MQTT 5协议你知道多少?

    MQTT协议是当今世界上最流行、接受度最高的物联网协议。自推出以来,MQTT协议在各行业应用广泛。本文带大家了解
    的头像 发表于 02-23 13:14 652次阅读

    智联物联分享之物联网协议MQTT简述,MQTT协议特点

    )基于客户端/服务器的信息发布/订阅的物联网常用传输协议。1999年由开发商IBM发布,MQTT协议是轻量、简单、开放和易于实现的,这些特点也使得MQTT
    的头像 发表于 03-28 18:10 1008次阅读
    智联物联分享之物联网<b class='flag-5'>协议</b><b class='flag-5'>MQTT</b>简述,<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>特点

    MQTT是什么 MQTT特点

    MQTT 是 Message Queuing Telemetry Transport 的缩写,是一种轻量级的、基于发布/订阅模式的物联网通信协议。 它具有以下特点: •简单易用:MQTT
    的头像 发表于 11-09 15:20 1796次阅读

    什么是MQTTMQTT协议中的方法

    MQTT是一种轻量级消息传递协议,由IBM开发,于1999年首次发布。它使用发布/订阅模式并在设备、服务器和应用程序之间转换消息。
    的头像 发表于 02-25 17:04 903次阅读
    什么是<b class='flag-5'>MQTT</b>?<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>中的方法

    mqtt协议和tcp协议区别

    MQTT协议和TCP协议在设计和应用上存在以下主要区别: 1. 起源与设计:MQTT协议诞生于1999年互联网初期,而TCP
    的头像 发表于 04-01 09:15 937次阅读