MQTT学习(二)
订阅主题和订阅确认
SUBSCRIBE——订阅主题
之前的CONNECT报文,分为
- 固定报头:必须存在,用于描述报文信息。里面有指出什么类型的报文,报文的等级。
- 可变报头:不一定存在。主要看什么样子类型的报文。
- 有效载荷部分:这是内容,也是通信信息的存放的地方,只是有时候还会存放一些额外的信息,如客户ID。
SUBSCRIBE报文
客户端向服务端订阅!
- 服务端发送PUBLISH报文给客户端。
- SUBSCRIBE报文指定了最大的QoS等级(服务质量要求)。
固定报头

可变报头
有效载荷
主题过滤器
服务质量要求(Qos等级)



使用订阅主题的时候一定要connect上服务器!
客户端向服务器订阅!
SUBACK——订阅确认




取消订阅UNSUBSCRIBE和取消订阅确认
客户端向服务端取消订阅!






取消订阅确认UNSUBACK



发布消息PUBLISH
PUBLISH控制报文是指从客户端向服务端或者服务端向客户端传输一个应用消息。

可变报头
主题名Topic Name:用于识别有效载荷数据应该被发布到哪一个信息通道。

报文标识符Packet Identifer只有当QoS等级是1或2时,报文标识符(Packet Identifer)字段才能出现在PUBLISH报文中。

有效载荷
有效载荷包含将发布的应用消息。
数据的内容和格式是应用特定的。
特定的格式:JSON

响应

动作
客户端使用PUBLISH报文发送应用消息给服务端,目的是分发到其它订阅匹配的客户端。
服务端使用PUBLISH报文发送应用消息给每一个订阅匹配的客户端。
JSON
JavaScript Object Notation,JS对象简谱,是一种轻量级的数据交换格式,JSON指的是JavaScript对象表示法。
{"firstName":"John"
}
- {}:大括号表示对象——键
- “”:双引号内表示属性或者值——指
键:必须是字符串
值:字符串、数组[]、对象{}、数字等
{"method":"thing.event.property.post","id":"00000001","params":{"PwoerSwitch":0},"version":"1.0.0"
}
多个键之间用,表示



不要复制长度到网络调试助手



消息转换成十六进制

相关文章:
MQTT学习(二)
订阅主题和订阅确认 SUBSCRIBE——订阅主题 之前的CONNECT报文,分为 固定报头:必须存在,用于描述报文信息。里面有指出什么类型的报文,报文的等级。可变报头:不一定存在。主要看什么样子类型的报文。有效载荷部分&a…...
入职Java,不会git被开除了。。。
入职Java,不会git被开除了。。。 文章目录 入职Java,不会git被开除了。。。前言一、Git是什么?二、Git的核心概念三、Git的工作流程四、Git的常用命令五、总结 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博…...
Mysql 隔离级别
MySQL的事务隔离级别是指在处理并发事务时,为保证数据的一致性和事务的独立性,数据库系统提供的不同级别控制策略。根据ACID特性中的隔离性(Isolation),MySQL支持四种标准的事务隔离级别,每种级别有不同的并…...
每日一学—K邻算法:在风险传导中的创新应用与实践价值
文章目录 📋 前言🎯 K邻算法的实践意义🎯 创新应用与案例分析🔥 参与方式 📋 前言 在当今工业领域,图思维方式与图数据技术的应用日益广泛,成为图数据探索、挖掘与应用的坚实基础。本文旨在分享…...
基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…...
【C++】内联函数、auto、范围for
文章目录 1.内联函数2.auto关键字2.1auto简介2.2auto的注意事项2.3auto不能推导的场景 3.基于范围的for循环(C11)4.指针空值nullptr(C11) 1.内联函数 概念: 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函…...
Day 46 139.单词拆分
单词拆分 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s “leet…...
streamlit报错:AxiosError: Request failed with status code 403
解决办法: 步骤一:创建config.toml vi ~/.streamlit/config.toml 步骤二:加入以下内容 [server] enableXsrfProtection false enableCORS false步骤三:重新启动你的streamlit网页...
java基础教学 |Java Stream API详解
Java Stream API 是Java 8引入的一个重要特性,它为集合对象提供了一种新的计算模型,使得开发者能够以声明性的方式处理数据集合。Stream API 不仅提高了代码的可读性和简洁性,还极大地优化了并行处理能力,让复杂的集合操作变得高效…...
0.0和0.00竟然不相等!!!BigDecimal别用错了比较方式
对于BigDecimal字段,可以使用compareTo()方法和equals()方法进行比较。但是要注意这两种方法的作用有所不同。一般都应该使用BigDecimal比较值,而不是使用经常用到的equals方法比较内容。 1.compareTo()方法 是用来比较两个BigDecimal对象的大小关系。…...
【多模态】30、Monkey | 支持大尺寸图像输入的多任务多模态大模型
文章目录 一、背景二、方法2.1 Enhancing Input Resolution2.2 Multi-level Description Generation2.3 Multi-task Training 三、效果3.1 Image Caption3.2 General VQA3.3 Scene Text-centric VQA3.4 Document-oriented VQA3.5 消融实验3.6 可视化 论文:Monkey : …...
PHP黑魔法之md5绕过
php本身是一种弱语言,这个特性决定了它的两个特点: 输入的参数都是当作字符串处理变量类型不需要声明,大部分时候都是通过函数进行类型转化php中的判断有两种: 松散比较:只需要值相同即可,类型不必相同,不通类型比较会先转化为同类型,比如全数字字符串和数字比较,会比…...
【适用全主题】WordPress原创插件:弹窗通知插件 支持内容自定义
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 适用于所有WordPress主题的弹窗插件 一款WordPress原创插件:弹窗通知插件 支持内容自定义 二、效果展示 1.部分代码 代码如下(示例)࿱…...
定时器的理论和使用
文章目录 一、定时器理论1.1定时器创建和使用 二、定时器实践2.1周期触发定时器2.2按键消抖 一、定时器理论 定时器是一种允许在特定时间间隔后或在将来的某个时间点调用回调函数的机制。对于需要周期性任务或延迟执行任务的嵌入式应用程序特别有用。 软件定时器: …...
【架构-17】通信系统架构设计理论
通信系统网络架构 1. 局域网网络架构 拓扑结构:星型、总线型、环型、树型。 网络架构:单核心架构(结构简单,地理范围受限)、双核心架构(网络拓扑结构可靠,投资较单核高)、环型架构…...
网络中的基本概念
网络初识 局域网:把若干个电脑组成在一起,通过路由器进行组网。 广域网:把局域网进一步的连接,构成更复杂的网络体系。 IP地址:区分主机。 端口号:区分主机上不同的程序。 协议:是一种约定&…...
手撸XXL-JOB(二)——定时任务管理
在上一节中,我们介绍了SpringBoot中关于定时任务的执行方式,以及ScheduledExecutorService接口提供的定时任务执行方法。假设我们现在要写类似XXL-JOB这样的任务调度平台,那么,对于任务的管理,是尤为重要的。接下来我们…...
DEV--C++小游戏(吃星星(0.2))
目录 吃星星(0.2) 简介 本次更新 分部代码 头文件(增) 命名空间变量(增) 副函数(新,增) 清屏函数 打印地图函数(增) 移动函数 选择颜色…...
Lua 协程池
协程池 在 使用 Lua 协程模拟 Golang 的 go defer 编程模式 中介绍了 Lua 协程的使用,模仿 golang 封装了下 还可以做进一步的优化 原来的 go 函数是这样实现的: function go(_co_task)local co coroutine.create(function(_co_wrap)_co_task(_co_w…...
[Linux][网络][协议技术][DNS][ICMP][ping][traceroute][NAT]详细讲解
目录 1.DNS1.DNS背景2.域名简介 2.ICMP协议1.ICMP功能2.ICMP两类报文 3.ping命令4.traceroute5.NAT技术1.NAT技术背景2.NAT IP转换过程3.静态地址NAT && 动态地址NAT4.网络地址端口转换NAPT5.NAT技术的缺陷6.NAT和代理服务器 6.总结1.数据链路层2.网络层3.传输层4.应用…...
如何用vJoy虚拟手柄驱动打造终极个性化游戏控制方案?免费开源教程指南
如何用vJoy虚拟手柄驱动打造终极个性化游戏控制方案?免费开源教程指南 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy 在游戏世界中,你是否曾因物理手柄的局限性而感到困扰?键盘操作缺乏平…...
OpenScreen——Screen Studio平替开源屏幕录制神器
你是否也曾为制作一个简单的产品演示视频而焦头烂额?花大价钱买的录屏软件,结果导出的视频角落里永远有个去不掉的水印?今天给大家安利一款刚在 GitHub 爆火的开源神器,彻底解决你的录屏烦恼。一、那些年,我们踩过的录…...
微信聊天记录管理新范式:WeChatMsg让数据掌控回归用户
微信聊天记录管理新范式:WeChatMsg让数据掌控回归用户 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…...
工业 AI Agent 落地全解:制造业智能化转型的技术架构与场景实践
2025 年被行业称为 AI Agent 元年,Gartner 将 Agentic AI 列为 2025 年顶级技术趋势首位。在智能制造加速推进的背景下,AI Agent 技术正成为破解制造业 AI 落地难、价值转化慢的核心抓手,实现从技术 Demo 到产线落地的跨越,真正融…...
聚焦AI专著生成:热门工具大盘点,满足不同写作需求
创新是学术专著的核心,也是写作过程中最重要的挑战。一本优秀的专著,不仅仅是将已有的研究成果拼凑在一起,而是需要提出贯穿整个作品的独到见解、理论框架或研究方法。在浩如烟海的学术文献面前,发掘尚未被触及的研究空白并不简单…...
QWEN-AUDIO功能全解析:声波可视化、情感指令、四种人声,到底怎么用?
QWEN-AUDIO功能全解析:声波可视化、情感指令、四种人声,到底怎么用? 1. 认识QWEN-AUDIO语音合成系统 QWEN-AUDIO是一款基于Qwen3-Audio架构构建的智能语音合成系统,它能够将文字转换成带有情感和温度的自然语音。这个系统最特别…...
[特殊字符]OpenClaw 优化系列(三):基于WSL的OpenClaw备份恢复与文件交互
告别环境崩塌恐惧症,一文掌握WSL下OpenClaw的数据安全与高效操作 Windows下WSL环境准备已经在前面讲了:🦞 OpenClaw 部署环境准备:Windows下WSL安装及配置全攻略。至于OpenClaw部署,教程已经很多很多了,只…...
从灰度世界到边缘检测:4种AWB算法MATLAB实现对比(附完整代码)
从灰度世界到边缘检测:4种AWB算法MATLAB实现对比(附完整代码) 在工业级图像信号处理(ISP)流水线中,自动白平衡(AWB)算法是确保色彩还原准确性的关键技术。不同场景下的色温变化会导致…...
Kook Zimage真实幻想Turbo企业级应用:SpringBoot微服务架构实战
Kook Zimage真实幻想Turbo企业级应用:SpringBoot微服务架构实战 1. 微服务架构下的AI图像生成价值 在内容创作平台的后台重构过程中,我们将Kook Zimage真实幻想Turbo的AI图像生成能力独立封装为微服务,这种架构设计带来了显著优势ÿ…...
Fish Speech-1.5语音自然度提升:后处理降噪与韵律微调实战指南
Fish Speech-1.5语音自然度提升:后处理降噪与韵律微调实战指南 1. 快速上手:部署与基础使用 Fish Speech V1.5是一个强大的文本转语音模型,基于超过100万小时的多语言音频数据训练而成。它支持包括中文、英语、日语在内的12种语言ÿ…...
