手机端(APP点灯blinker)-PC端(Node-red)-设备端(ESP32)-客户端(MQTTX客户端)四者之间的通信——通过MQTT通信(问题处理)
创始人
2025-05-30 09:22:20

手机端(APP点灯blinker)-PC端(Node-red)-设备端(ESP32)-客户端(MQTTX客户端)四者之间的通信——通过MQTT通信(问题处理篇)

背景

前两篇文章收到大量粉丝的欢迎,但是同时也有不少粉丝遇到了很多奇怪的问题,博主太长时间没有复现之前的项目了,导致最近有些遗忘,今日再细化下碰到的问题和解决办法。

问题一:链接点灯科技的服务器总是会一连接上就掉线

原因:设备只能发布和订阅属于自身的topic,如果操作其他的topic将被broker断开连接!

在点灯科技的官网有说明:
在这里插入图片描述
如图:
我们发布和订阅的device只能是自己的ClientID,若订阅了不符合标准的topic,则会被服务器强制下线,而删除订阅的topic又需要连接上服务器才能删除,所以就导致我们永远无法再次在线,因此只能删除该链接重新配置才行。
在这里插入图片描述
官网的发布和订阅标准如下:
在这里插入图片描述

问题二:硬件设备无法收到来自MQTTX客户端的消息

原因:
发布
设备向Topic发布信息后,broker会获取其中的toDevice信息,并将该信息转发到指定设备

{"toDevice":"xxxxxxxx","data":"abcdefg"}

上述转发格式中的toDevice字段的值,非目标设备的DeviceName,而是目标设备的uuid,在下篇的说明中未注意到uuid的标准因此后续实现转发的过程中有不少小伙伴都发现发送不成功的问题,在此进行解释说明,以表歉意,浪费和误导了大家。
在这里插入图片描述
报文示例:

假设
设备①:
deviceName:FDE97499KO7NNLCP53AUCAH8 
uuid:abcdefg1234567设备②:
deviceName:3CCE9041LIHUPMOGX9E1PVLF
uuid:gfedcba7654321

这两设备要想相互通信就得这么发
设备①发送的Topic和报文内容
在这里插入图片描述
设备②发送的Topic和报文内容
在这里插入图片描述

问题三:MQTTX客户端在线了为什么收不到硬件设备的消息

原因:在建立链接的时候,服务器地址可能未选择正确导致,由于新建链接的时候服务器地址会默认生成一个,导致我们忘了填写点灯科技的服务器地址,最后导致虽然看上去设备和MQTTX客户端都在线了,但是就是收不到来自设备转发的消息,原因是2个都在线了,但是不在同一个服务器上,点灯服务器的地址为:broker.diandeng.tech(该地址可通过URL中的host获取)。
在这里插入图片描述

问题四:MQTTX客户端建立链接时总会显示错误

原因:MQTTX客户端默认建立链接时采用的是5.0版本协议,但是点灯科技服务器不支持该协议导致报错。
在这里插入图片描述
进行编辑,在高级选项中选择MQTT版本为3.1.1
在这里插入图片描述

最后的话

若还有其他小伙伴碰到问题,可参考此篇,若仍存在其他问题,可留言或私信博主,博主上线看到就会回,有问题可免费帮忙解答,共同进步!

相关内容

热门资讯

旅游购物更便利,海南开启新“流... 海南自由贸易港全岛封关运作正式启动后,国内外的游客前往海南没有任何手续方面的变化,而且在购物方面会更...
高原藏戏奏响文旅新声 甘孜州巴... 封面新闻记者 李庆 王越欣 图据活动主办方 12月19日,以“五彩藏乡·高原江南”为主题的甘孜州巴塘...
不做奶茶改卖螺蛳粉?阿嬷手作要... 在新茶饮行业增速缓至个位数、市场进入平稳发展期、竞争白热化的背景下,广西头部餐饮品牌阿嬷手作打破边界...
生活日常与美食:5分钟搞定早餐... 平日里进行烹饪,它可不单只是用来让肚子不饿的一种手段,更是一种对营造家庭氛围,以及对管理健康有着重要...
家常菜营养又美味的秘诀,让你每... 它不只是维系生命延续的手段,更是深深承载着丰富情感及独特文化内涵的日常饮食,在快节奏现代生活大背景下...