MQTT 简介

MQTT(详解) MQTT(Message Queuing Telemetry Transport)是一种轻量级的通信协议,用于在设备之间传输消息。它通常用于物联网(IoT)和传感器网络中,可以在不同设备之间进行可靠的通信,而且资源消耗相对较低。MQTT基于发布/订阅模型,允许设备发布消息到特定主题(topic),并让订阅了相同主题的设备接收这些消息。这使得MQTT成为了在资源受限或需要实时通信的环境中非常有用的协议,比如监控系统、传感器网络、智能家居等领域。 阅读详情

什么是MQTT

MQTT 是 Message Queuing Telemetry Transport(消息队列遥测传输)的缩写,是 IBM 开发的一个即时通讯协议,它比较适合于在低带宽、不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物联网通信协议的重要组成部分。

  • 基于发布 / 订阅范式的 “轻量级” 消息协议(头部 2 字节)
  • 专为资源受限的设备、低带宽占用高延时或者不可靠的网络设计,适用于 IoT 与 M2M
  • 基于 TCP/IP 协议栈
  • 事实的 IoT 通讯的标准协议

该协议于 1999 年由 IBM 的 Dr Andy Stanford-Clark 和 Arcom(现为 Eurotech)的 Arlen Nipper 提出,协议版本经历了多次升级和改进,于 2013 年成立 OASIS MQTT 技术规范委员会,并持续发布协议的新版本,

  • 2015 年,MQTT3.1.1 协议发布
  • 2018 年,MQTT5.0 协议发布

目前主流的支持协议版本为 3.1.1,但是比较活跃的 MQTT 服务器推出了支持 MQTT 5.0 协议的版本,EMQ X 今年 9 月份推出了 3.0 版本,是开源社区中最早支持 MQTT 5.0 协议的服务器。

MQTT 协议的主要特性

  • MQTT 协议使用发布 / 订阅消息范式来做到一对多的消息分发以及应用程序的解耦
  • MQTT 协议提供了 3 种(QoS)服务质量用于消息传输,适应不同的物联网数据传输场景
    • QoS 0:最多一次传送 (只负责传送,发送过后就不管数据的传送情况)
    • QoS 1:至少一次传送 (确认数据交付)
    • QoS 2:正好一次传送 (保证数据交付成功)
  • 通过很小的传输开销,以及最小化的协议交换来减少网络流量
  • 发生异常断线时通知各方的机制

MQTT发布/订阅

 

如上图所示,

  • 发布者:温度传感器,通过主题 "sensor/1/temperature" 发布一条温度为 37.5 度的消息
  • 3 个自上而下的订阅者分别通过订阅不同的主题得到发布者发出的消息
    • 移动设备:通过订阅主题 "sensor/1/#"
    • 电脑:通过订阅主题 "sensor/+/temperature"
    • 服务器:通过订阅主题 "sensor/1/temperature"

MQTT 服务器

MQTT 服务器是发布者和订阅者之间通信的代理(因此中文也有将 MQTT 服务器翻译为 MQTT 代理),主要提供了以下的功能,

  • 基于主题的 Pub/Sub 模式,将发布者和订阅着解耦
  • 对于服务器来说,发布者和订阅者都是“客户端”
  • 客户端与服务器连接都通过 TCP、TLS 或者 WebSocket
  • 客户端(发布者)发送一条消息到服务器
  • 一个或者多个客户端(订阅者)从服务器接收消息

按照 MQTT 协议标准,服务器提供三种连接方式,

  • TCP:默认端口为 1883
  • TLS:默认端口为 8883
  • WebSocket:默认端口为 8083
var code = "f07e5048-2246-4e35-83a8-5dbeec94102b"
MQTT简介及安装使用 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,专为在低带宽、不可靠网络或设备资源有限的情况下进行通信而设计。它非常适合用于物联网(IoT)设备之间的消息传递,因为它能够以最小的开销提供可靠的信息传输服务。--【基于AI】 阅读详情

相关推荐

MQTT简介及实现原理

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设...

浅浅的博客 2万+

什么是MQTT

万物互联场景下,首先要解决的就是连接的问题,本文旨在介绍最基本的MQTT协议,当前对于mqtt协议的解读不具备系统性,力图通过本文的解读,将该协议详细且完整地呈现出来。

linus_ben的博客 7714

mqtt简介和bifromq使用

Mosquitto:适合资源受限的物联网设备和轻量级应用场景,具有低资源占用、简单易用和跨平台的特点。:适合对吞吐量要求较高的物联网场景,支持高吞吐量和顺序消息。BifroMQ:适合大规模物联网设备连接和高吞吐量场景,具有高性能、低时延和多租户支持的特点。

幽静净土的技术分享 1429

什么是MQTT?一文快速了解MQTT基础知识

MQTT,全称为Message Queuing Telemetry Transport(消息队列遥测传输),是一种轻量级的发布-订阅式消息传输协议。它被设计用于在低带宽、不稳定网络环境下进行高效可靠的通信。MQTT适用于各种设备之间的实时数据传输,特别是在物联网(IoT)应用中非常常见。MQTT是一种基于发布/订阅模式的轻量级消息传输协议,适用于物联网等低带宽、高延迟的场景。而RabbitMQ是一个开源。

AlbenXie的博客 2631

MQTT协议知识梳理,看完你就懂了

MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布/订阅信息传输协议。MQTT在时间和空间上,将消息发送者与接受者分离,可以在不可靠的网络环境中进行扩展。适用于设备硬件存储空间有限或网络带宽有限的场景。物联网平台支持设备使用MQTT协议接入MQTT的特点是可以保持长连接,具有一定的实时性,云端向设备端发送消息,设备端可以在最短的时间内接收到并作出响应,所以MQTT更适合需要实时控制的场合,更适合执行器。要保持长连接,那么就要时不时地发送心跳包,这就不会省电了。

IT技术分享社区 3104

Java物联网开发:MQTT与智能家居

1. 背景介绍 1.1 物联网的崛起 随着科技的发展,物联网(Internet of Things,IoT)已经成为了一个热门领域。物联网是指通过互联网将各种物体相互连接,实现信息的交换和通信的一种网络。在这个网络中,智能家居作为物联网的一个重要应用场景,越来越受到人们的关注。

AI天才研究院 375

MQTT 基本知识简介

此篇博客介绍 MQTT 的基本知识。 1 MQTT 介绍 MQTT (Message Queue Telemetry Transport):消息队列遥测传输协议​ 其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发,属于物联网(Internet of Thing)的一个标准传输协议。 ​ 优点:​ 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;​ 使用 TCP/IP 提供网络连接,支持 TLS 指定服务质量(Q

ESP 技术分享,推动万物互联 3693

嵌入式:简单的service框架

在嵌入式中,我们获取一个资源、设置一个变量、更新数据的话最直接的方式就是直接调用一个函数。这样的写法也可以满足基本的功能,前提是这个系统是只要一个任务,只有一个while(1)如图1.1。图1.1当有两个或者两个以上的任务的时候,同时调用一个函数(设置一个状态值、操作同一个资源、操作指针等行为)的流程如图1.2。图1.2当两个任务同时操作一个资源的时候,就会有重入的问题,会导致想不到的异常问题(数据不对、指针异常等)。

stupid的博客 985

【MQTT】MQTT简介+安装+使用

MQTT 协议简介 MQTT(Message Queuing Telemetry Transport),是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。 MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。 ...

我的笔记本 6万+

微信小程序返回按钮的隐藏玩法:用onShow实现数据自动刷新(附完整代码)

本文深入探讨了微信小程序中用户点击返回按钮后,如何利用onShow生命周期函数实现页面数据的自动刷新。文章对比了onLoad与onShow的差异,提供了从基础的本地存储标记到进阶的EventChannel事件通信,再到状态管理库的多种解决方案,并附有完整的代码示例,帮助开发者构建流畅的用户体验。

agile9scrum的博客 925

Oracle数据库安装及配置(Oracle19c)

Windows 10安装Oracle 19c教程

weixin_69200200的博客 2万+

MQTT-Dashboard-简介、访问控制

MQTT-Dashboard-简介、访问控制

JAVA程序猿成长 279

Opencv计算相机响应函数(Camera Response Function)与Radiance

本文主要用于记录自己在学习CRF过程中遇到的一些问题。 CRF模型 I=f(V(t⋅L))I=f(V( t\cdot L))I=f(V(t⋅L)) 其中III为相机灰度值Intensity,LLL为环境中irradiance,ttt为曝光时间,VVV为相机镜头参数,fff为相机响应函数CRF。 有些论文中认为相机镜头参数是线性的不考虑,但有些考虑了衰减即靠近图像边缘亮度会暗一些,但没有看到二者同时计算的,如果同时计算两个非线性的函数,我觉得可能会有不确定性,在这里还请教一下了解的朋友。 控制

larrydong的博客 5997

MQTT 协议简介

MQTT是一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

Java+GO+JS全栈工程师-鹤冲天的博客:编程辅导~商务合作~技术交流 1万+

Python爬虫-爬取汽车之家各品牌周销量榜数据,进行数据分析

本文是该专栏的第57篇,后面会持续分享python爬虫干货知识。本文中,笔者已经整理20篇汽车平台相关的爬虫项目案例。对此感兴趣的同学,可以直接翻阅查看。同样,笔者在本文中将继续以汽车之家平台为例子。基于Python爬虫,实现批量爬取“各品牌周销量榜单”的数据。废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 365

Python控制Keysight DAQ973A/DAQ970A实现数据采集

本文介绍了如何通过编程实现Keysight DAQ973A数据采集系统的自动化温度测量。首先,通过GPIB线将PC与仪器连接,并使用热电耦测量线连接被测装置。接着,通过查阅Keysight官网提供的编程手册,获取了实现温度测量所需的SCPI指令。然后,使用pyvisa库编写代码,与仪器进行交互,发送SCPI指令并读取测量结果。代码中整合了配置和查询指令,并将测量结果转换为浮点数格式。最后,将整个流程封装为命令行工具,用户可以通过配置文件设置参数,并执行自动化测试,测试结果将保存为CSV文件。整个过程实现了温

xgh1951的博客 1884

MQTT简介

MQTT全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议,由 IBM 发布。 MQTT 可以被解释为一种低开销,低带宽占用的即时通讯协议,可以用极少的代码和带宽的为连接远程设备提供实时可靠的消息服务,它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下,因此 MQTT 协议在 IoT(Internet of things,物联网),小型设备应用,移动应用等方面有较广泛的应用。 IoT 设备要运作,就必须连接到互

wzbwzt的博客 1346

置顶必读(1) |《滚雪球学SpringBoot 3.x》· 高质量专栏介绍,你值得拥有!

《滚雪球学SpringBoot 3.x》 并不是普通的技术讲解合集,它是专为开发者精心设计的系统化学习路径。通过不断“滚动学习”,我们将带领你从基础入门到高阶应用,从理解每一行代码到设计和优化大规模分布式系统,最终帮助你成长为一位精通 spring架构 的工程师。

**My Coding Family** 12万+

MQTT协议简介

从阿里云网页文档中了解物联网模拟工具,操作方式参考如下链接。

qq_39776661的博客 877

世界职业院校技能大赛财经赛道项目参考逐字稿五

世界职业院校技能大赛财经赛道项目参考逐字稿五

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 126

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MQTT协议-MQTT协议简介及协议原理

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设

JIESA的专栏 10万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

一、MQTT简介

MQTT(Message Queuing Telemetry Transport),即消息队列遥测传输协议,由 IBM 在 1999 年开发。最初,MQTT 是用于将石油管道上的传感器与卫星相链接,旨在为受限设备和低带宽、高延迟或不可靠的网络而设计。其起源可以追溯到 IBM 的 MQ 系列产品,虽然名字中有“Message Queue”,但实际上 MQTT 并不使用传统的消息队列,而是采用了发布和订阅的消息传递模式。随着物联网的快速发展,MQTT 逐渐成为热门的通信协议。

m0_43405302的博客 1844

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MQTT简介之二 MQTT协议

1、什么是MQTT •MQTT协议(Message Queuing Telemetry Transport),翻译过来就是消息队列遥测传输,是IBM公司于1999年提出的。 • •MQTT是一个基于TCP的发布订阅协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。 • •2014年发布最新版本是3.

caofengtao1314的专栏 1315

【MQTT】MQTT知识简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),是一种即时通信协议。适用范围:机器与机器间通信,即M2M,或物料网之间。设计思想:轻巧,开放、简单、规范且易于实现。定义:客户端/服务端架构的发布/订阅模式的消息传输协议。MQTT服务器种类结构拓扑图客户端:常规完成的工作内容包括(1)发布其他客户端可能会订阅的信息;(2)订阅其它客户端发布的消息;(3)退订或删除应用程序的消息;(4)断开与服务器连接。服务端常规完成的工作内容包括。...

Jessica1213zhang的博客 822
上一篇: Qt5.9.2在Windows下通过ODBC连接postgresql
下一篇: QMQTT + EMQ环境搭建
书灯
博客等级 码龄11年 29粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值