找回密码
 立即注册

QQ登录

只需一步,快速开始

cucme

高级会员

108

主题

326

帖子

1198

积分

高级会员

积分
1198

时代开发者征文活动

cucme
高级会员   /  发表于:2024-2-18 15:28  /   查看:583  /  回复:3
10金币
有个项目要使用MQTT,使用官方插件,有两个问题需要求助:

1. 如何发送MQTT消息?插件里只提供了处理接收到消息的回调。
2. 多个设备(动态添加设备)如何处理?目前能想到的是如果感知到有新设备,就执行一次订阅主题命令。
3. 接2,但是即便我在处理接收数据命令中加上deviceID参数,在MQTT插件中也不能设备相应的参数,最终会导致接收的指令不能与设备对应起来。




附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

3 个回复

倒序浏览
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-2-18 16:27:12
沙发
您好,
第一个问题,目前的 MQTT 客户端还没有发送的功能,目前这个需要大佬这边自己去实现了。
第二个问题,我理解的是设备的上线通知需要 MQTT Server 和 Client 配合来完成,比如设备上线时,给 Server 的某个 Topic 发送消息,消息内容可以包括设备的 ID 和状态,这样活字格这一侧就可以订阅这个 Topic,使用 MQTT 客户端插件处理接收到的数据。可以参考下下面这个文章哈:


Mosquitto感知客户端上下线的方法_mosquitto查看所有连接的客户端-CSDN博客
第三个问题,设备向 Server 的 Topic 推送消息时,能否带上设备相关信息呢,然后处理信息的回调服务端命令用一个参数接收数据,然后从数据里解析出设备信息和具体设备对应起来。

回复 使用道具 举报
cucme
高级会员   /  发表于:2024-2-18 16:54:05
板凳
Simon.Sun 发表于 2024-2-18 16:27
您好,
第一个问题,目前的 MQTT 客户端还没有发送的功能,目前这个需要大佬这边自己去实现了。
第二个问 ...

如果不能发送mqtt消息,那这个插件也用不起来了。。。。

第2个问题主要是给第3个问题铺垫。业务上来说,在消息里加上设备ID是可以,我就是想为啥在“处理接收消息”里添加了参数,在mqtt插件里这个参数也出不来,如果能出来这个参数,问题也好解决了。
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-2-18 17:51:51
地板
这边讨论一下,MQTT 插件这块看能否去完善。
参数这个,处理接收消息这个本事就是个服务端命令,参数是可以任意添加了,这里的回调实际上是用指定的参数名称去通过发送 HTTP 请求去调用 处理接收消息 这个服务端命令,走业务上处理数据的逻辑。应为订阅接收的消息是放到一个变量中的,所以一般来说一个参数就足够使用了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部