手机端(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
在这里插入图片描述

最后的话

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

相关内容

热门资讯

漳州最好吃的海蛎煎推荐|美食文... 闽南美食的精髓,藏在烟火气里,更藏在代代相传的手艺中。作为深耕闽南美食文化的探访者,此次走进漳州古城...
联合国设宴?中国白酒出海,郎酒... 前不久,纽约联合国总部外交官宴会厅,“中国年·世界享”——郎酒新春之夜在这里圆满举行。 当晚,台上...
岁月的味道!浦江这酒,香! 冬意渐浓,年味愈近,冬季正是酿酒的好时节。仙华街道浦北村村民贾忠伟的家中,连日来酒香四溢,他正忙着用...
屏山县有哪些特色菜推荐 在四川宜宾的南部,有一座生态环境优美的小城——屏山县。这里不仅山清水秀,还藏着许多独具风味的特色菜肴...
近镜头|一餐一饭系心间 2月10日,习近平总书记来到位于北京西城区北草厂胡同的“吾老·新街”养老服务街区,走进新街口街道父母...