首页 > 其他分享 >1分钟了解MQTT协议

1分钟了解MQTT协议

时间:2024-04-01 09:59:26浏览次数:30  
标签:协议 订阅 主题 代理服务器 分钟 MQTT 消息 发布者

MQTT是一种基于发布/订阅(Publish/Subscribe)模式的通信协议,用于在低带宽、不稳定网络环境下实现设备之间的可靠通信。它采用轻量级的协议头,具有简单、灵活和高效的特点,适用于各种规模和复杂度的物联网应用场景。 在MQTT中,有四个核心概念:

  • 发布者(Publisher):将消息发布到MQTT代理服务器上,通常是物联网设备或传感器。

  • 订阅者(Subscriber):订阅感兴趣的主题(Topic)并接收相应的消息,通常是应用程序或后台服务器。

  • 代理服务器(Broker):负责接收发布者发布的消息,并将消息路由到对应的订阅者。代理服务器是MQTT通信的中心,负责管理设备之间的连接和消息传递。 MQTT的通信模型是异步的,发布者和订阅者之间没有直接的连接,而是通过代理服务器进行消息传递。发布者发布的消息被代理服务器保存在消息队列中,然后代理服务器将消息分发给订阅了相应主题的订阅者。 MQTT协议头非常简单,仅包含少量的字段,这使得它在资源有限的设备上能够高效运行。同时,MQTT还支持QoS(Quality of Service)级别,用于确保消息的可靠传输。MQTT的QoS级别有三个等级:0级(最多一次传输)、1级(至少一次传输)和2级(仅一次传输)。

  • 主题(Topic):主题是MQTT中的核心概念,用于标识消息的内容。发布者发布消息时,需要指定一个主题,订阅者可以通过订阅相应的主题来接收消息。主题可以是层级结构的,以斜杠(/)分隔不同的层级,例如:home/living room/temperature。

在MQTT架构中,发布者将消息发布到MQTT代理服务器上,代理服务器根据订阅者的订阅情况将消息分发给对应的订阅者。发布者和订阅者之间没有直接的连接,所有的消息传递都通过代理服务器进行,MQTT的通信模型是异步的,即发布者发布消息后立即返回不需要等待订阅者的响应,这种异步的通信模型使得MQTT非常适用于低带宽不稳定网络环境下的物联网应用。MQTT作为一种轻量级的消息传输协议,具有简单、灵活和高效的特点,被广泛应用于物联网领域的各种应用场景,包括但不限于图中所示场景。

标签:协议,订阅,主题,代理服务器,分钟,MQTT,消息,发布者
From: https://blog.csdn.net/qq_42217104/article/details/137100020

相关文章

  • 1分钟了解Socket
    先来看一下百度百科对于Socket的介绍:套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。我们将一个小区比......
  • 从 Redis 开源协议变更到 ES 国产化:一次技术自主的机遇
    引言近日,RedisLabs宣布其主导的开源项目Redis将采用双重源代码可用许可证(RSALv2)和服务器端公共许可证(SSPLv1)。这一重大决策标志着Redis从传统的BSD许可证向更加严格的控制权转变,同时也引发了广泛的社区和行业讨论。这不仅是一个关于许可证变更的故事,更是关于开源社区如何......
  • Android studio制作的mqtt协议通讯app,可用于搭建的meqx服务器,不可连接阿里云
    首先,在app目录下创建一个libs文件夹,导入相应的MQTT的jar包,然后右击jar包拉到最后找到Add...的一个选项,单击就OK了然后就是添加一些权限添加另一个layout的名字activity_main<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.......
  • ICMP协议详解
    一、引言在互联网的复杂网络体系中,数据包的顺利传输是通信的基础。互联网控制消息协议(ICMP)作为一种关键的网络层协议,对于确保数据包的正确传输和网络的稳定性起着至关重要的作用。ICMP是IP协议的一个重要补充,它定义在RFC792中。ICMP使得网络设备能够报告错误信息和进行网......
  • 【蓝桥杯】小明要做一个跑步训练。初始时,小明充满体力,体力值计为10000。如果小明跑步,
    【问题描述】小明要做一个跑步训练。初始时,小明充满体力,体力值计为10000。如果小明跑步,每分钟损耗600的体力。如果小明休息,每分钟增加300的体力。体力的损耗和增加都是均匀变化的。小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻......
  • Fiddler系列课程笔记(一):初识Fiddler,深入理解HTTP协议
    Fiddler系列课程笔记(一):初识Fiddler,深入理解HTTP协议1.fiddler简介1.1什么是B/S架构?(Browser/Server)【补充】:tomcat是公司常用的一个web服务器,用来部署资源(文件、图片等),提供服务的。1.2我们可以查看URL(统一资源定位符)怎么获取服务器资源的1.2.1login.html的访问......
  • DHCP(动态主机配置协议)
    动态主机配置协议统一分发管理IP地址。基于UDP67/68端口工作网络中存在DHCP的服务器为需要自动生成IP地址的设备分配IP地址。成为DHCP服务器的条件:①该设备存在接口或网卡连接到所要分发IP地址的广播域内。②该接口或网卡必须已经配置合法的IP地址,且可以正常通信。配......
  • 论STM32如何使用I2C协议
    前言当提到STM32微控制器使用I2C协议时,通常意味着通过I2C总线与其他外设进行通信。I2C(Inter-IntegratedCircuit)是一种常用的串行通信协议,用于在微控制器和外部设备之间传输数据。ST公司的STM32系列微控制器广泛应用于各种嵌入式系统中。STM32微控制器通常具有内置的硬件支持,......
  • can协议
    CAN2.0B标准帧CAN标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。位置   7   6   5   4   3   2   1   0字节01   FF   RTR   ×   ×   DLC(数据长度)字节02   (报文识别码)   ID.10―ID.3字节0......
  • PPM协议的输出实现
    关于PPM输出的具体实现我们必然先知道其原理,本人是参考站内qiyuexin大佬的PPM信号解析这篇文章。基本要点1.ppm每个通道所占用的时间并不固定2.ppm的精度主要受制于时钟精度3.对于一个通道数据每次开头都有0.5ms的固定低电平,之后跟着0.5ms的固定的高电平,之后是0-1ms的数据......