mqtt,node-red get-start
首先是安装mqtt和node-red服务,我这里的系统是腾讯云轻量服务器,装的是centos7,这里两个服务都是采用的docker部署
一,安装EMQX(官网:https://www.emqx.io/zh)
1.1 运行以下命令获取 Docker 镜像:
docker pull emqx/emqx:5.0.26
1.2 运行以下命令启动 Docker 容器
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.26
二,安装node-red(官网:https://nodered.org)
直接拉取进行运行容器
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
三,使用node-red 来进行mqtt消息订阅发布,过滤
调试工具使用的是mqttx,下载地址:https://mqttx.app/zh
具体操作参考这篇文章,https://www.emqx.com/zh/blog/using-node-red-to-process-mqtt-data 更多节点功能可以参考node-red官网文档学习
效果展示:
1.建流程,部署好
2.使用mqttx调试(过滤器作用,只会对a值变化的消息进行反应,a值发生变化,会往/test/node/out topic中发送一条消息)
向/test/node/in topic发送一条消息(a = 1),/test/node/out topic没有消息
3.向/test/node/in topic发送一条消息(a = 2),/test/node/out topic 接收到消息
流程导出Json文件
[
{
"id": "f6f2187d.f17ca8",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": ""
},
{
"id": "d8837d5b9cc0a55f",
"type": "mqtt in",
"z": "f6f2187d.f17ca8",
"name": "",
"topic": "/test/node/in",
"qos": "2",
"datatype": "auto-detect",
"broker": "45b44a174fce9755",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 210,
"y": 260,
"wires": [
[
"866dfd1946fcdc20"
]
]
},
{
"id": "866dfd1946fcdc20",
"type": "json",
"z": "f6f2187d.f17ca8",
"name": "",
"property": "payload",
"action": "obj",
"pretty": true,
"x": 370,
"y": 400,
"wires": [
[
"1ce25d21fcdf4276"
]
]
},
{
"id": "ab4cf5b8430c6f9d",
"type": "template",
"z": "f6f2187d.f17ca8",
"name": "",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "mustache",
"template": "芜湖起飞 {{payload.a}} !",
"output": "str",
"x": 810,
"y": 400,
"wires": [
[
"781d4cf406864dcc"
]
]
},
{
"id": "1ce25d21fcdf4276",
"type": "rbe",
"z": "f6f2187d.f17ca8",
"name": "",
"func": "rbe",
"gap": "",
"start": "",
"inout": "out",
"septopics": true,
"property": "payload.a",
"topi": "topic",
"x": 590,
"y": 380,
"wires": [
[
"ab4cf5b8430c6f9d"
]
]
},
{
"id": "781d4cf406864dcc",
"type": "mqtt out",
"z": "f6f2187d.f17ca8",
"name": "test/node/out",
"topic": "/test/node/out",
"qos": "0",
"retain": "",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "45b44a174fce9755",
"x": 1050,
"y": 340,