NodeRed应用——NodeRed中MQTT主题的动态订阅与发布

  1 前言

本文章原文发表于我的微信公众号,请大家关注阅读,涉及的源代码等都在公众号,扫描以下二维码即可关注。

也可点击链接访问:NodeRed应用——NodeRed中MQTT主题的动态订阅与发布

2.概述

在NodeRed中MQTT是必不可少的协议,它是与外界通信的桥梁,我不知道有多少人在使用一个节点订阅一个主题,我之前也是那样使用的,在我写同步开关流程的时候,发现这种方式完全没有办法满足我的需求,偶然的机会发现MQTT还有动态订阅,让我如获至宝。

3.MQTT动态订阅概念

我不知道如何准确解释动态订阅概念和定义,对于我来说就是能够同时订阅和发布多个主题,而不是用多个MQTT节点。至于相关文档我也记不清在哪里看到的,已经找不到出处,不管怎样这个流程我已经在使用并保存。

4.动态订阅的流程

首先需要定义订阅的主题,当然只有一个主题也是可以的,至少可以少用一个发布节点。按照相关文档我写了一条nodered函数如下:

图片

上面函数中可设置多条主题,在customTopics中根据自己需要设置即可,以上设置的主题是我用于测试且存在的主题。值得注意的是函数需要用inject节点触发一次才能启动函数,然后函数连接MQTT in节点,并改为动态订阅:

图片

最后添加一个debug节点,用于测试订阅,流程图如下:

图片

5. 流程测试

测试订阅流程如下,输出已经订阅主题:

图片

测试订阅的主题的消息如下:

图片

输出正确的主题和消息表示动态订阅和发布成功,同时我在函数上增加了状态显示,可以显示订阅的主题数量。

以上动态订阅流程虽然是一个简单应用,不仅可以减少节点的使用,在大型流程中也有着举足轻重的地位,后面大部分流程都会用到,写这篇文章目的是先让大家了解基本应用,在后面的流程中便于理解。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值