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 文件,支持容器化部署
主要依赖
| 依赖包 | 版本 | 用途 |
|---|---|---|
| iris | v12.2.10 | Web框架 |
| gorm | v1.25.9 | ORM框架 |
| mongo-driver | v1.15.0 | MongoDB驱动 |
| go-redis | v9.5.1 | Redis客户端 |
| paho.mqtt | v1.4.3 | MQTT客户端 |
| casbin | v2.87.1 | 权限管理 |
| livekit | v1.12.0 | 实时通信 |
| minio-go | v7.0.69 | 对象存储 |
| zap | v1.27.0 | 日志库 |
| viper | v1.18.2 | 配置管理 |
应用场景
-
管道监控系统
- 管道设备实时监控
- 管道状态数据采集
- 异常告警与处理
-
机器人管理系统
- 机器人远程控制
- 任务调度与执行
- 运行状态监控
-
安全帽监控
- 工人位置追踪
- 安全状态监控
- 危险区域告警
开发团队
- 项目类型: 企业级物联网平台
- 开发语言: Go
- 维护状态: 活跃维护中
注意事项
- 本项目包含敏感配置信息,部署时需要修改配置文件中的密码和密钥
- 需要配置 SSL 证书以支持 HTTPS 和 MQTTS
- 确保 MongoDB、MySQL、Redis 和 EMQX 服务正常运行
- 生产环境建议使用容器化部署方式
版本信息
- 当前版本: 1.0
- Go版本要求: 1.22.2+
- 运行模式: debug/release
文档生成日期: 2025-12-27