为啥物联网用MQTT?

前言

  • 都说物联网用MQTT,那分别使用Http和Mqtt发送“Hello”,比较一下就知道啦

HTTP

  • HTTP请求报文由请求行、头部字段和消息体组成。一个最简单的HTTP POST请求如下:
POST / HTTP/1.1
Host: example.com
Content-Length: 5
Content-Type: text/plainhello
  • 字节分析如下:
- 请求行: `POST / HTTP/1.1\r\n` (17字节)
- 头部: - `Host: example.com\r\n` (19字节)- `Content-Length: 5\r\n` (19字节)- `Content-Type: text/plain\r\n` (26字节)
- 空行: `\r\n` (2字节)
- 消息体: `hello` (5字节)总计: 88字节

MQTT

  • MQTT报文由固定头部、可变头部和有效载荷组成。发送"hello"消息的PUBLISH报文如下:
30 0B 00 04 74 65 73 74 68 65 6C 6C 6F
  • 字节分析如下:
30             - 报文类型和标志 (1 字节)
0B             - 剩余长度 (1 字节)
00 04          - 主题名长度 (2 字节)
74 65 73 74    - 主题名 "test"(4 字节)
68 65 6C 6C 6F - 有效载荷 "hello"(5字节)整体字节数: 13 字节

结论

  • HTTP 88字节 > MQTT 13字节

附表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/77713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统 ------ 五种IO模型

阻塞IO:一个IO请求操作,准备阶段和复制阶段都会阻塞应用程序,直到操作完全完成 非阻塞IO:一个IO操作请求,先判断准备阶段是否完成,如果未完成立即返回,否则,进入复制阶段&#xff0…

service和endpoints是如何关联的?

在Kubernetes中,Service 和 Endpoints 是两个密切关联的对象,它们共同实现了服务发现和负载均衡的功能。以下是它们之间的关联和工作原理: 1. Service 的定义 Service 是一种抽象,定义了一组逻辑上相关的 Pod,以及用…

程序化广告行业(78/89):多因素交织下的行业剖析与展望

程序化广告行业(78/89):多因素交织下的行业剖析与展望 在程序化广告这片充满活力又不断变化的领域,持续学习和知识共享是我们紧跟潮流、实现突破的关键。一直以来,我都渴望能与大家一同探索这个行业的奥秘&#xff0c…

数智化重构供应商管理

当供应链韧性成为核心竞争力,你的供应商管理还在 “摸着石头过河” 吗? 在传统模式下,供应商管理高度依赖人工经验与纸质流程: 入库筛选如“大海捞针”:供应商资质审核停留在Excel表格比对,资质造假、历史…

网络互连与互联网

1.在路由表中找不到目标网络时使用默认路由,默认路由通常指本地网关的地址。 2.OSPF最主要的特征是使用分布式链路状态协议,而RIP使用的是距离向量协议。 3.OSPF使用链路状态公告LSA扩散路由信息 4.内部网关路由协议IGRP是一种动态距离矢量路由协议&a…

Raymarching Textures In Depth

本节课最主要的就是学会hlsl中使用纹理采样 float4 color Texture2DSample(Texobj, TexobjSampler, uv); return color; 课程中的代码(没有这张图我就没做) 课程代码产生深度的原因是uv偏移,黑色区域会不断向左偏移,直到找到白色…

【MQTT-协议原理】

MQTT-协议原理 ■ MQTT-协议原理■ MQTT-服务器 称为"消息代理"(Broker)■ MQTT协议中的订阅、主题、会话■ 一、订阅(Subscription)■ 二、会话(Session)■ 三、主题名(Topic Name&a…

docker容器安装的可道云挂接宿主机的硬盘目录:解决群晖 威联通 飞牛云等nas的硬盘挂接问题

基于Docker部署可道云(KodCloud)时,通过挂载宿主机其他磁盘目录可实现高效、安全的数据管理。具体而言,使用绑定挂载(Bind Mounts)将宿主机目录(如/data/disk2)映射到容器内的可道云…

go语言内存泄漏的常见形式

go语言内存泄漏 子字符串导致的内存泄漏 使用自动垃圾回收的语言进行编程时,通常我们无需担心内存泄漏的问题,因为运行时会定期回收未使用的内存。但是如果你以为这样就完事大吉了,哪里就大错特措了。 因为,虽然go中并未对字符串…

es6学习02-let命令和const命令

一、let命令 1.let块级作用域: let关键字 VS var关键字 2.for循环计数器很适合let命令 var:整个for循环中一直都是同一个i在做1,最后输出的就是10; let:每循环一次都是多一个i的赋值,最后输出是可以调出…

MySQL深分页问题

在项目中有一个数据导出的需求,原来的实现方式也比较简单,根据查询条件分页查所有的数据,然后转成csv的格式一行一行写进文件存储中。 实际上线之后,发现出现了慢查询,具体的sql如下: select * from tabl…

前端面试宝典---创建对象的配置

Object.create 对整个对象的多个属性值进行配置 创建对象 不可更改属性值 // 创建对象 不可更改属性值 let obj Object.create({}, {name: {value: lisi,writable: false,},age: {value: 20,writable: true,} })console.log(初始化obj, obj) obj.name wangwu console.log(…

数据结构:C语言版严蔚敏和解析介绍,附pdf

《数据结构:C语言版(第2版)》严蔚敏李冬梅吴伟民.pdf 《数据结构:C语言版》严蔚敏,李冬梅.pdf 《数据结构C语言第2版习题解析与实验指导》李冬梅.pdf 「《数据结构:C语言版(第2版 )》…

深入理解 v-for 指令及其使用方法

在 Vue.js 中,v-for 是用于渲染列表的核心指令,它允许你通过循环渲染数据源中的每一项。通过 v-for,你可以轻松地将数组、对象或其他可迭代的数据渲染成 HTML 元素。本文将详细介绍 v-for 的基本用法、常见的应用场景、最佳实践及性能优化&am…

VIRT, RES,SHR之间的关系

VIRT、RES 和 SHR 是进程内存使用的三个关键指标,它们之间的关系反映了进程的内存分配和使用情况。以下是它们的定义和关系: VIRT(虚拟内存):表示进程分配的虚拟内存总量,包括所有代码、数据、共享库、堆栈…

2025届蓝桥杯JavaB组个人题解(暂时不全,没题目)

2025 届蓝桥杯 Java B 组题解 第一次参加蓝桥杯,输入输出都用的BufferedReader和PrintWriter,怕输入输出不对或者内存超限,也怕出现小错误运行不了的,比如Main打成Mian什么的,但还是希望能拿省一,这里给出自…

在Vue项目的引入meting-js音乐播放器插件

开源项目:https://github.com/swzaaaaaaa/NBlog 1、开源项目中音乐播放插件的使用流程 步骤1:下载meting-js相关文件 在MetingJS官方仓库或其他可靠的CDN获取meting-js的JavaScript文件以及相关依赖(如APlayer的文件)。将它们下…

HTML应用指南:利用GET请求获取全国汉堡王门店位置信息

在当今快节奏的都市生活中,餐饮品牌的门店布局不仅反映了其市场策略,更折射出消费者对便捷、品质和品牌认同的追求。汉堡王(Burger King)作为全球知名的西式快餐品牌之一,在中国市场同样占据重要地位。自进入中国市场以…

使用 Function 来编写策略模式:优雅而高效的设计模式实践

引言:为什么选择策略模式? 策略模式(Strategy Pattern)是行为设计模式中的经典之一,它允许我们定义一系列的算法或操作,并使得它们可以互换使用。策略模式的关键思想是将算法的实现与使用它们的上下文分离…

Windows 系统中安装 Git 并配置 GitHub 账户

由于电脑重装系统,重新配置了git. 以下是在 Windows 系统中安装 Git 并配置 GitHub 账户的详细步骤: 1. 安装 Git 访问 Git 官网下载页面下载 Windows 版本的 Git 安装程序运行安装程序,使用默认选项即可 2. 配置 Git 用户信息 打开命令…