Skip to content

部署MQTT工具

MQTT协议广泛应用于物联网通信。本工具将创建MQTT服务器,并连接会众云平台第三方软硬件平台,实现两个平台相互之间的通信

1.创建配置文件

特别说明

注意:务必使用正确的json格式,否则服务无法启动!

创建文件

bash
# 创建文件
mkdir /etc/hzy
cd /etc/hzy
vim mqtt.json

文件内容示例

特别说明

这里是示例参数!请替换为真实的参数,并检查JSON格式是否正确

这里是示例参数!请替换为真实的参数,并检查JSON格式是否正确

这里是示例参数!请替换为真实的参数,并检查JSON格式是否正确

json
{
  "USERNAME": "test",
  "PASSWORD": "123",
  "MQTT_PORT": 1883,
  "HTTP_PORT": 80,
  "WHITE_IPS": ["192.168.151.1", "192.168.151.2"],
  "SUBSCRIBE_LIST": [
    {
      "TOPIC": "topic1",
      "URL": "https://apaas-data.ysyoungth.com/00001_api/webhook/MVf832oAbo05j-ZWgp7THEJ60XT-1"
    },
    {
      "TOPIC": "topic2",
      "URL": "https://apaas-data.ysyoungth.com/00001_api/webhook/MVf832oAbo05j-ZWgp7THEJ60xy-1"
    }
  ]
}

参数说明

bash
# 参数说明
USERNAME         # 【必填】mqtt协议的用户名
PASSWORD         # 【必填】mqtt协议用户名对应的密码
MQTT_PORT        # 【可选】mqtt协议端口号,默认为:1883
HTTP_PORT        # 【可选】http协议端口号,默认为:80
WHITE_IPS        # 【可选】ip白名单,仅在白名单内的ip被允许访问(不配置则允许所有ip访问)
SUBSCRIBE_LIST   # 【必填】订阅地址列表(会将对应topic的消息转发给指定的URL,这个URL链接由会众云平台的webhook工作流自动生成)

注意

订阅地址列表是通过会众云平台webhook工作流自动生成的地址,节点json参数结构由调用方提供

例如:调用方提供的参数结构如下

json
{
  "point": "点位",
  "state": "状态"
}

2.运行MQTT服务

启动服务

注意

必须使用 --network host 模式启动容器,否则无法获取到客户端ip,ip白名单无法生效

bash
docker run --privileged -e TZ=Asia/Shanghai -itd --restart always --network host -v /etc/hzy:/root/conf registry.cn-hangzhou.aliyuncs.com/hzy0code/hzy-utils:mqtt.x86.1.0.0

重启服务

注意

修改了配置文件后,需要使用以下命令重启服务

[CONTAINER ID]表示容器ID,使用docker ps命令可以查看容器ID

示例:

bash
docker restart [CONTAINER ID]

3.主动发送请求

当需要主动发送请求给MQTT服务时,可以使用以下接口

接口描述

  • 方法: POST
  • URL:/send_msg
  • 参数
    • topic:主题
    • message:发送的消息内容
  • 返回:成功返回success

请求示例

POST http://192.168.123.1/send_msg

json
{
    "topic": "topic1",
    "message": "test send massage"
}