物联网消息传输协议——mqtt详解

article/2025/9/29 13:41:52

什么是Mqtt

mqtt是为物联网场景设计的基于tcp的pub/sub协议,
是基于发布/订阅模式的物联网通信协议
具有简单易用、支持QoS、报文小、轻量、节省带宽、不关心数据具体格式、可以时刻感知设备是否在线等特点

出生背景

本名: Message Queue Telemetry(遥测,远距离测量) Transport
年龄: (1999- )
使命: 九十年代早期为实现 在带宽有限的条件下,让传感器能与IBM的MQ Integrator通信的一个实时数据传输协议

永远的竞争对手webSocket

说到实时数据传输,可能你会想到websocket,那这两究竟有什么区别呢?
其实这两确实十分相似
但有一个最大的不同,你可以认为这两个是处于不同层面的协议
在这里插入图片描述

MQTT主要做的是原生设备,基于各种硬件机器设备的通信
WebSocket主要实现的是Web客户端与服务器端的长连接,webSocket是为了H5方便与服务器进行双向通讯而设计的协议,主要用来取代老旧的Comet、长轮询、Server Push等老旧方案的实现
在这里插入图片描述

‘’MQTT的接收广播的消息是通过MQTT client,而不是Web Client。由于在物联网应用场景中很多应用是没有Web Client的(比如你家微波炉上面不会安个浏览器。。),所以MQTT特别适合IoT应用场景。‘’

————引用自知乎

实现实例

在项目中安装mqtt库
yarn add mqtt
新建文件mqtt.js

var mqtt = require('mqtt');var client = mqtt.connect('mqtt://xxx.xxx.x.xx:xxxx', {username: “xxxxx”,//要监听的设备token
});client.on('connect', function () {console.log('connected’);//当运行node mqtt.js时,打印connect,并开始订阅client.subscribe('v1/devices/me/rpc/request/+')
});client.on('message', function (topic, message) {
//当订阅的设备发生变化时,mqtt就发布设备更改的信息相关内容,request.body等console.log('request.topic: ' + topic);console.log('request.body: ' + message.toString());var requestId = topic.slice('v1/devices/me/rpc/request/'.length);client.publish('v1/devices/me/rpc/response/' + requestId, message);
});

启动mqtt
node mqtt.js
在这里插入图片描述

此时已经进入订阅状态了,我们尝试通过表单更新一下设备的信息
在这里插入图片描述

在这里插入图片描述
这时可以从控制台中看到,设备所修改的内容已经被mqtt监听并发布出来了
在这里插入图片描述

参考文档

https://www.zhihu.com/question/21816631
https://www.emqx.cn/blog/connect-to-mqtt-broker-with-websocket
https://www.emqx.cn/blog/what-is-the-mqtt-protocol


http://chatgpt.dhexx.cn/article/skqaKjh7.shtml

相关文章

MQTT物联网协议详解

MQTT物联网协议详解 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上&#xff…

MQTT协议,终于有人讲清楚了

6步!教你写一个mqtt调试助手_GREYWALL-CSDN博客点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达大家好,我是小麦,之前写过一篇MQTT的文章,里面用来测试的mqtt client程序是自己编译的。…

MQTT协议简介及协议原理

文章目录 MQTT协议MQTT协议简介MQTT通信模型MQTT客户端的功能:MQTT客户服务器功能: 消息主题与服务质量MQTT控制报文固定报头可变报头CONNECT报文CONNACK报文 有效载荷 MQTT协议 MQTT协议简介 MQTT协议全称是Message Queuing Telemetry Transport&…

MQTT协议详解,非常易懂

MQTT协议详解一 协议地址:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html 当然也有PDF版的,百度一下,不过个人感觉不是官网上的字体和排版最舒服。 那么这个协议是用做什么或有什么特色呢?下面是mqtt…

看见协议,浅析TCP、HTTP、MQTT

如果对tcp还不了解的,可以看看计算机网络基础简单了解一下; 如果对tcp的深入感兴趣,看了上一篇还不过瘾的可以看吊打面试官!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题 好了,如果看回来了我们来进入正题…

MQTT协议简介

一、mqtt协议简介1.1 MQTT协议特点1.2 发布和订阅1.3 QoS(Quality of Service levels)QoS 0QoS 1QoS 2 二、MQTT 数据包结构2.1 MQTT固定头 ( FixedHeader )2.2 MQTT可变头 ( Variable header )2.3 消息体 ( Payload ) 三、环境搭建3.1 MQTT服务器搭建3.…

MQTT 协议是什么

MQTT 协议是什么 随着 5G 时代的来临,万物互联的伟大构想正在成为现实。联网的 物联网设备 在 2018 年已经达到了 70 亿,在未来两年,仅智能水电气表就将超过10亿。 海量的设备接入和设备管理对网络带宽、通信协议以及平台服务架构都带来了很…

简述MQTT协议

目录 简介MQTT协议组成MQTT三种QOS 1.简介 1.1 MQTT介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输): 是IBM推出的一种针对移动终端设备基于TCP/IP的发布/订阅协议;可以连接大量的远程传感器和…

MQTT协议详解(完整版)

1 MQTT协议概念: 1.1 MQTT特点: 基于Publish/Subscribe(发布订阅)模式的物联网通信协议简单易实现支持Qos(服务质量)报文精简基于TCP/IP 发布订阅模式: 客户端只需要订阅这个主题,当有其他客户端向这个服务端发布消息时,这个客户端就可以收到这个消息…

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

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布…

MQTT协议详解及v5.0实践——实践类

本文主要包含了以下内容: 1)MQTT协议演进历史及协议特点,总结和分析MQTT协议族的优缺点,分析和总结了为什么相比于其他协议,MQTT适合IoT,业内支持现状等。 2)阿里云IoT MQTT3和5协议在实践中的…

MQTT与TCP通信协议的对比

一、背景 在物联网场景开发中,大多数通信模组都支持TCP、UDP、MQTT、CoAP、HTTP、LwM2M等网络通信协议,其中既有负责传输层协议,也有应用层协议,不同协议适用的场景也不尽相同。 二、协议分层 上图中举例了网络分层中最常见的几…

MQTT协议介绍

MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码…

MQTT协议超全面总结来啦

一、概念 MQTT 是基于 Publish/Subscribe 模式的物联网通信协议,凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)&#xff0c…

【MQTT协议详解】MQTT协议

文章前注:本文的大量素材来自于百度百科和MQTT协议3.1.1中文板 MQTT协议3.1.1中文版网址:http://blog.mcxiaoke.com/mqtt/protocol/MQTT-3.1.1-CN.html 一、认识MQTT MQTT(消息队列遥测传输) 是ISO 标准(ISO/IEC PRF 20922)下基于 发布/订阅 范式的消息…

MQTT协议 详解

文章目录 一、啥是MQTT?1. MQTT协议特点2. 发布和订阅3. QoS(Quality of Service levels)QoS 0 —— 最多1次QoS 1 —— 最少1次QoS 2 —— 只有1次 二、MQTT 数据包结构1. MQTT固定头2. MQTT可变头 / Variable header3. Payload消息体 三、M…

MQTT协议图解,一文看懂MQTT协议数据包(真实报文数据解析解释)

文章目录 一、MQTT协议二、协议详解2.1 协议结构2.1.1 固定报头2.1.2 可变报头2.1.3 有效载荷 三、具体协议报文详解3.1 连接服务器报文详解3.2 发布消息报文详解 四、开源的MQTT实现五、官方文档3.1.1中文翻译下载六、官方文档5.0中文翻译下载 本文主要介绍MQTT协议的结构和具…

MQTT协议(概括与详解)

I概括 一,MQTT协议 1、MQTT协议可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。 2、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。 对负载内容屏蔽的消息传输。 使用 TCP/IP 提供网络…

大数据挖掘分析经典案例,主要包含哪几种?

1.预测产品未来一段时间用户是否会流失,流失情况怎么样; 2.公司做了某个促销活动,预估活动效果怎么样,用户接受度如何; 3.评估用户信用度好坏; 4.对现有客户市场进行细分,到底哪些客户才是目…

用户复购行为预测--数据挖掘分析案例(天池/python)

–阿里天池新人赛中的一个,记录分享。 Repeat Buyers Prediction-Challenge the Baseline-天池大赛-阿里云天池 第一次提交:8简单特征,随机森林模型,score:0.5507327,排名:278 第二次提交:13特…