Skip to content

部署TCP工具

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

1.创建配置文件:tcp.json

配置参数说明

bash
WEBHOOK             # 【必填】会将tcp内容转发给配置的「WEBHOOK」地址(这个地址由会众云平台的webhook工作流自动生成)
TCP_PORT            # 【可选】tcp协议端口号(默认值:1600)
HTTP_PORT           # 【可选】http协议端口号(默认值:80)
WHITE_IPS           # 【可选】ip白名单,仅在白名单内的ip被允许访问(不配置则允许所有ip访问)
MAX_CONNECTION_NUM  # 【可选】最大tcp连接数量(默认值:2048,即最大允许2048个设备连接)

创建webhook触发工作流时,json参数结构固定如下:

bash
{
"uniqueId": "3ae05e6ba4782017a4185f1cd0261b77",
"content": "xxxxxx"
}

文件内容示例

json
{
  "WEBHOOK": "https://apaas-data.ysyoungth.com/00001_api/webhook/gmhVlMLd9U05S-gmhWKl5SNs0X1-1",
  "TCP_PORT": 1600,
  "HTTP_PORT": 80,
  "WHITE_IPS": [],
  "MAX_CONNECTION_NUM": 2048
}

1.1.一键创建

下方参数后,将其复制粘贴至命令行,敲击回车键即可

bash
cat > /etc/hzy/tcp.json <<- EOF
{
  "WEBHOOK": "https://apaas-data.ysyoungth.com/00001_api/webhook/gmhVlMLd9U05S-gmhWKl5SNs0X1-1",
  "TCP_PORT": 1600,
  "HTTP_PORT": 80,
  "WHITE_IPS": [],
  "MAX_CONNECTION_NUM": 2048
}
EOF

如何验证执行结果?

命令行输入:cat /etc/hzy/tcp.json,后敲击回车键即可查看文件内容

1.2.手动创建

bash
cd /etc/hzy && vim -n tcp.json

注意

将使用vim编辑文件内容,点击查看vim的使用说明

2.运行TCP服务

启动服务

注意

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

注意

使用windows部署时,需要替换相关目录,点击详情查看

无法使用--network host,需要将其替换为:-p 1600:1600(1600为配置的端口)
bash
docker run --privileged -e TZ=Asia/Shanghai -itd --restart always --network host -v /etc/hzy:/root/conf --name hzy-tcp registry.cn-hangzhou.aliyuncs.com/hzy0code/hzy-utils:tcp.x86.1.0.0

重启服务

注意

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

bash
docker restart hzy-tcp

3.主动发送请求

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

接口描述

  • 方法: POST
  • URL:/send_msg
  • 参数
    • uniqueId:tcp连接唯一ID
    • message:发送的消息内容
  • 返回:成功返回success

请求示例

POST http://192.168.123.1/send_msg

json
{
    "uniqueId": "3ae05e6ba4782017a4185f1cd0261b77",
    "message": "test send massage"
}

5.获取所有连接的设备

当需要获取当前连接中的tcp设备有哪些时,可以使用以下接口

接口描述

  • 方法: POST
  • URL:/clients
  • 参数
  • 返回:
json
[
    {
        "uniqueId": "3ae05e6ba4782017a4185f1cd0261b77",
        "lastTime": 1721828172372
    },
    {
        "uniqueId": "3ae0f1cd0261b775e6ba4782017a4185",
        "lastTime": 1721828177372
    }
]

请求示例

POST http://192.168.123.1/clients