broker中的发布mqtt消息的方法,需要设备订阅后才能收到

IOT 未结 2 302
QQ895623
QQ895623 剑侠 2025-01-24 13:54

一、该问题的重现步骤是什么?

1. 我在broker里写了个收到消息后,回复消息的功能,然后我发现我重启了后台之后,我设备发了消息,收不到回复的消息,但我已经订阅了,但是如果我重新订阅一下,就可以收到回复消息,我想问下每次设备重连后,都要重新订阅吗?有没有自动订阅的方法?

2. 后台代码:image.png

3.mqttx工具截图:image.png


二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  • 2025-01-24 15:56

    mqtt 是订阅发布的,下行直接发 publishAll,不需要指定 clientId。publish 方法带 clientId 其实是违背 mqtt 设计的。就算使用 publish 下发下去了,不同的 mqtt client 处理方式不一样,可能并不会执行。不建议用这个方法。这个方法之所以没删除,是因为有的同学用它做了一些特殊处理。

    1 讨论(0)
  • 2025-01-24 14:27

    重启mqtt后台服务,可以把它看作为真实场景的mqtt服务挂掉了,设备全部离线。等服务开启后,设备再次链接。这个链接过程,需要重新订阅的。

    0 讨论(0)
代码语言
提交回复