跳到主要内容

GDGS 项目文档

项目概述

GDGS 是一个基于 Go 语言开发的物联网管理平台,专门用于管道项目机器人项目的维护和管理。该项目提供了完整的设备管理、数据采集、实时监控等功能。

技术栈

  • 开发语言: Go 1.22.2
  • Web框架: Kataras Iris v12.2.10
  • 数据库:
    • MySQL (GORM ORM)
    • MongoDB
    • Redis
  • 消息队列: MQTT (Eclipse Paho)
  • 实时通信: LiveKit Protocol & Server SDK
  • 对象存储: MinIO
  • 权限管理: Casbin v2
  • 日志: Uber Zap
  • 配置管理: Viper

项目结构

gdgs/
├── cmd/ # 命令行入口
│ ├── server-gdgs/ # GDGS服务器主程序
│ └── server-robot/ # 机器人服务器主程序
├── config/ # 配置文件
│ ├── config.yaml # 主配置文件
│ ├── server.key # SSL密钥
│ └── server.pem # SSL证书
├── docs/ # 文档目录
│ └── 安全帽MQTT通信协议/ # 安全帽设备通信协议文档
├── internal/ # 内部业务逻辑
│ └── server/ # 服务器核心逻辑
├── pkg/ # 公共包
│ ├── algo/ # 算法库
│ ├── cache/ # 缓存管理
│ ├── db/ # 数据库操作
│ ├── email/ # 邮件服务
│ ├── httpclient/ # HTTP客户端
│ ├── log/ # 日志管理
│ ├── map/ # 地图相关功能
│ ├── mqtt/ # MQTT通信
│ ├── routines/ # 协程管理
│ └── util/ # 工具函数
├── script/ # 部署脚本
│ ├── dev/ # 开发环境脚本
│ ├── prod-gdgs/ # GDGS生产环境脚本
│ └── prod-robot/ # 机器人生产环境脚本
├── .dockerignore
├── .gitignore
├── go.mod
├── go.sum
└── README.md

核心功能

1. 设备管理

  • 管道设备监控与管理
  • 机器人设备控制与调度
  • 设备状态实时追踪
  • 设备数据采集与存储

2. 通信协议

  • 基于 MQTT 的设备通信
  • 安全帽设备专用通信协议
  • 实时数据推送
  • 双向指令控制

3. 数据处理

  • 地理位置计算 (golang-geo)
  • 数据缓存优化
  • Excel 数据导入导出
  • 实时数据分析

4. 权限与安全

  • 基于 Casbin 的权限控制
  • JWT 身份认证
  • HTTPS 加密通信
  • 数据访问控制

5. 实时通信

  • LiveKit 实时音视频
  • WebRTC 支持
  • 实时数据流传输

配置说明

服务器配置

server:
host: "0.0.0.0"
port: "2443"
logLevel: "debug"
jwtSignKey: "sercrethatmaycontainch@r32length"
jwtExpirationPeriod: 72

数据库配置

  • MongoDB: 用于存储非结构化数据和日志
  • MySQL: 用于存储结构化业务数据
  • Redis: 用于缓存和会话管理

MQTT配置

mqtt:
broker: "mqtts://my-emqx-container:8883"
clientID: "iot-platform-client_id"
username: "super-emqx"
password: "u12233upw"

部署方式

开发环境

使用 script/dev/ 目录下的脚本进行开发环境部署

生产环境

  • GDGS服务: 使用 script/prod-gdgs/ 脚本部署
  • 机器人服务: 使用 script/prod-robot/ 脚本部署

Docker支持

项目包含 .dockerignore 文件,支持容器化部署

主要依赖

依赖包版本用途
irisv12.2.10Web框架
gormv1.25.9ORM框架
mongo-driverv1.15.0MongoDB驱动
go-redisv9.5.1Redis客户端
paho.mqttv1.4.3MQTT客户端
casbinv2.87.1权限管理
livekitv1.12.0实时通信
minio-gov7.0.69对象存储
zapv1.27.0日志库
viperv1.18.2配置管理

应用场景

  1. 管道监控系统

    • 管道设备实时监控
    • 管道状态数据采集
    • 异常告警与处理
  2. 机器人管理系统

    • 机器人远程控制
    • 任务调度与执行
    • 运行状态监控
  3. 安全帽监控

    • 工人位置追踪
    • 安全状态监控
    • 危险区域告警

开发团队

  • 项目类型: 企业级物联网平台
  • 开发语言: Go
  • 维护状态: 活跃维护中

注意事项

  1. 本项目包含敏感配置信息,部署时需要修改配置文件中的密码和密钥
  2. 需要配置 SSL 证书以支持 HTTPS 和 MQTTS
  3. 确保 MongoDB、MySQL、Redis 和 EMQX 服务正常运行
  4. 生产环境建议使用容器化部署方式

版本信息

  • 当前版本: 1.0
  • Go版本要求: 1.22.2+
  • 运行模式: debug/release

文档生成日期: 2025-12-27