MQTT协议-发布消息(服务器向客户端发送)

这篇具有很好参考价值的文章主要介绍了MQTT协议-发布消息(服务器向客户端发送)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MQTT协议-发布消息(服务器向客户端发送)

发布消息报文组成:https://blog.csdn.net/weixin_46251230/article/details/129414158

在了解了发布信息的PUBLISH报文后,就可以分析出阿里云服务器向本地客户端发送的报文数据了

实验前需要在阿里云创建产品和设备,并创建简单的温度和湿度物模型:https://blog.csdn.net/weixin_46251230/article/details/128996719

1、用CONNECT报文连接阿里云

MQTT协议-发布消息(服务器向客户端发送)

查看设备是否显示在线

MQTT协议-发布消息(服务器向客户端发送)

2、订阅物模型主题

选择带有订阅权限的Topic类

MQTT协议-发布消息(服务器向客户端发送)

将${deviceName}用自己的设备名称代替后,转为十六进制,计算出字节长度,在字节最后需要加上服务质量等级Qos,这里设置为00,不能忘记

MQTT协议-发布消息(服务器向客户端发送)

加上固定报头和可变报头,组合成订阅主题报文

MQTT协议-发布消息(服务器向客户端发送)

发送报文,收到阿里云应答,表示订阅成功

MQTT协议-发布消息(服务器向客户端发送)

3、阿里云物模型发送数据

阿里云平台里选择在线调试,然后设置温度和湿度值,最后点击设置,服务器便下发数据到客户端

MQTT协议-发布消息(服务器向客户端发送)

在网络调试助手可以看到阿里云发送的报文,将报文复制到文本文档进行分析

MQTT协议-发布消息(服务器向客户端发送)

4、分析报文

报文的首字节是30,符合发布消息报文的固定报头字节,后面一个字节是AB,最高位为1,因此还有一个字节01来表示剩余长度,低位在前,高位在后,可以计算出长度为171,所以可以得到固定报头为30 AB 01

MQTT协议-发布消息(服务器向客户端发送)

可变报头的首两个字节表示报头的长度,所以00 34是表示长度的,0x34转为十进制为52,因此就从34后开始数52个字节作为可变报头

将这52个字节转为ASCII可得到阿里云物模型订阅权限的Topic类:/sys/i6deo513xT1/Device01/thing/service/property/set

与上面发送的订阅主题报文的一致,说明分析正确

MQTT协议-发布消息(服务器向客户端发送)

剩下的字节就全部是有效载荷,该部分首两个字节不是代表长度的,是真实数据,将其全部转为ASCII码便可得到JSON格式的数据,可看到温度值为20,湿度值为66,与一开始在阿里云平台上设置的一样,说明服务器向客户端发送的数据正确。

MQTT协议-发布消息(服务器向客户端发送)文章来源地址https://www.toymoban.com/news/detail-456140.html

到了这里,关于MQTT协议-发布消息(服务器向客户端发送)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mqtt服务器搭建与qt下的mqtt客户端实现

      MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(Io

    2024年02月06日
    浏览(94)
  • C#MQTT编程07--MQTT服务器和客户端(wpf版)

    上篇完成了winform版的mqtt服务器和客户端,实现了订阅和发布,效果666,长这样  这节要做的wpf版,长这样,效果也是帅BBBB帅,wpf技术是cs程序软件的福音。  wpf的基础知识和案例项目可以看我的另一个专栏系列文章,这里直接干搞,开发环境依然是vs2022,.netframework 4.8,mq

    2024年01月17日
    浏览(70)
  • 【Android】MQTT入门——服务器部署与客户端搭建

    MQTT(Message Queuing Telemetry Transport) 是一种基于发布/订阅模式的轻量级消息传输协议,专门针对低带宽、和不稳定网络环境的物联网应用而设计,它可以用极少的代码为互联网设备提供实时可靠的消息服务。 MQTT 协议主要用于物联网和移动设备等资源有限的场景中,其中包括

    2024年02月04日
    浏览(83)
  • linux下MQTT服务器(EMQX)搭建及paho.mqtt.c客户端开发

    前言: MQTT 是一种基于客户端服务端架构的发布 / 订阅模式的消息传输协议。它的设计思想是轻巧、开放、 简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与 机器的通信( M2M )以及物联网环境( IoT )。        ---

    2024年02月06日
    浏览(72)
  • 手机、电脑mqtt客户端通过腾讯云服务器远程连接ESP32

            本文将实现:         1、esp32与腾讯云物联网服务器通过mqtt协议通信         2、电脑和手机客户端通过mqtt与腾讯云相通信         3、腾讯云服务器内部消息转发,将手机、电脑发布的主题转发给esp32订阅,实现手机、电脑与esp32的远程通信。      

    2024年02月11日
    浏览(62)
  • WPF真入门教程28--项目案例--MQTT服务器和客户端

    这个案例还是布局加视图模型,样式应用,业务逻辑,该项目是一个mqtt服务器和客户端的通信工具,这里不去分析mqtt的通信原理,关注在于wpf技能的应用,能够掌握这个例子,离项目开发也差不多了,只是没有跟db打交道,本项目重点在于理解mvvm模式,开发环境依然是vs20

    2024年01月17日
    浏览(58)
  • Qt实现客户端与服务器消息发送

    里用Qt来简单设计实现一个场景,即: (1)两端:服务器QtServer和客户端QtClient (2)功能:服务端连接客户端,两者能够互相发送消息,传送文件,并且显示文件传送进度。 环境:VS20013 + Qt5.11.2 + Qt设计师 先看效果: 客户端与服务器的基本概念不说了,关于TCP通信的三次握

    2024年02月11日
    浏览(51)
  • 双线网络发布服务器以及客户端上网介绍

    实验要求: 1、公司想将自己的服务器双线发布出去。 2、员工可以访问电信和网通的WEB服务器。 配置思路: 1、事先指明公司和电信网通路由器的NAT的内部和外部端口。配置NAT路由器的默认路由。 2、实现公网网络互通。 3、公司配置: 配置访问控制列表 access-list 100 permit

    2024年02月06日
    浏览(73)
  • HomeAssistant快速使用教程二:安装mqtt,作为消息服务器

    因为要接入很多DIY的硬件,因为语言,接口的不同,所以使用MQTT协议进行它们之间的通信。 在这里使用emqx的MQTT,因为他们还有一个配套前端,比较好用。 这里放上官方github连接:emqx官网连接 官方文档支持中文,可以自己查阅,进行更加灵活的配置安装(源码安装),因为这

    2024年02月11日
    浏览(48)
  • Java 构建websocket客户端,构建wss客户端,使用wss连接,并发送数据到服务器端,接收服务器端消息

    Java 构建websocket客户端,构建wss客户端,使用wss连接,并发送数据到服务器端,接收服务器端消息 回调函数处理

    2024年02月13日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包