# service_oriented_edge_gateway **Repository Path**: hollson/soeg ## Basic Information - **Project Name**: service_oriented_edge_gateway - **Description**: SOEG面向服务的边缘网关(Service Oriented Edge Gateway) - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-14 - **Last Updated**: 2026-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, Gateway ## README # 面向服务的智能边缘网关(SOEG) ## 一. 项目概述 **SOEG** (Service Oriented Edge Gateway) 是专为分布式场景打造的高性能、高安全通信中枢。项目采用"模块化 + 总线模型"的核心设计理念,为边缘计算等分布式环境提供可靠的通信支撑。 ### 核心特性 - **架构设计**:模块化与总线模型构建,功能模块通过总线高效协同,兼具灵活性与可扩展性 - **核心能力**:整合KCP/UDP/TCP协议的安全通信、全链路认证、客户端代理、服务状态同步及会话管理 - **部署适配**:支持边缘代理模式与去中心化部署,完美适配边缘节点分散特性 - **拓扑管理**:通过网关互通与多级代理构建弹性拓扑,确保全节点状态一致 ### 适用场景 - 工业物联网(设备互联) - 智慧城市(终端协同) - 云边协同(边缘代理)
## 二. 项目架构 ### 系统架构图 ### 组件模型图 ### 项目结构 ``` soeg_server/ ├── .vscode/ # IDE配置文件 ├── docs/ # 技术文档 ├── etc/ # 配置文件目录 ├── samples/ # 技术验证示例 ├── libs/ # 三方库文件 ├── include/ │ ├── core/ # 核心头文件 │ └── modules/ # 模块头文件 ├── src/ │ ├── core/ # 核心源码 │ ├── modules/ # 模块源码 │ └── main.cpp # 入口文件 └── tools/ # 相关工具 ```
## 三. 编译运行 ### 编译命令 ```shell shell $ make build -- Configuring done -- Generating done -- Build files written to: /workspace/soeg_server/cmake_build [100%] Built target soeg_server ``` ### 运行命令 ```shell $ make run ==================================================================== Service Oriented Edge Gateway (v1.0.0) ==================================================================== 10-01 23:12:16 INF [Manager] Current IPv4: 192.168.1.10 10-01 23:12:16 INF [Manager] Using etc/config.ini 10-01 23:12:16 INF [Manager] Logger initialized. 10-01 23:12:16 INF [Manager] Loading mock data... 10-01 23:12:16 INF [Manager] Load module - Router 10-01 23:12:16 INF [Manager] Load module - Breadcast 10-01 23:12:16 INF [Manager] Load module - Sync 10-01 23:12:16 INF [Manager] Load module - Agent 10-01 23:12:16 INF [Manager] Load module - RegCenter 10-01 23:12:16 INF [Manager] Load module - API 10-01 23:12:16 INF [Manager] Init module - Router 10-01 23:12:16 INF [Manager] Init module - Breadcast 10-01 23:12:16 INF [Manager] Init module - Sync 10-01 23:12:16 INF [Manager] Init module - Agent 10-01 23:12:16 INF [Manager] Init module - RegCenter 10-01 23:12:16 INF [Manager] Init module - API 10-01 23:12:16 INF [Manager] Start module - Router 10-01 23:12:16 INF [Listener] Gateway socket[FD:4] is running on 5002 ... 10-01 23:12:16 INF [Manager] Start module - Breadcast 10-01 23:12:16 INF [Listener] MultiCast socket[FD:5] is running on 1224 ... 10-01 23:12:21 INF [Broadcast] Summon[PSH] payload { 192.168.1.10|5002|192.168.1.10|5004 } @1 ... 10-01 23:12:26 INF [Broadcast] Summon[PSH] payload { 192.168.1.10|5002|192.168.1.10|5004 } @2 ... 10-01 23:12:31 INF [Broadcast] Summon[PSH] payload { 192.168.1.10|5002|192.168.1.10|5004 } @3 ... 10-01 23:12:31 INF [Manager] Start module - Sync 10-01 23:12:31 INF [Manager] Start module - Agent 10-01 23:12:31 INF [Manager] Start module - RegCenter 10-01 23:12:31 INF [Manager] Start module - API 10-01 23:12:36 INF [Sync] Start to sync[1] ... 10-01 23:12:36 WRN [Sync] No other gateways found. ... ``` ### 运行状态检查 ```shell shell # 查看UDP服务状态 $ netstat -anp|grep soeg_ udp 0 0 0.0.0.0:5002 0.0.0.0:* 29127/./soeg_servi udp 0 0 0.0.0.0:1224 0.0.0.0:* 29127/./soeg_servi ```
## 四. 测试演示 ### 1. Select多路复用测试 ```shell $ make testx name=select_udp_test SELECT多路复用,监听 0.0.0.0:7001 SELECT多路复用,监听 0.0.0.0:7002 收到数据(端口7001,来自127.0.0.1:62886):测试Select_UDP1 收到数据(端口7002,来自127.0.0.1:60591):测试Select_UDP2 ``` ### 2. UDP服务兼组播测试 ```shell $ make testx name=udp_with_multicast_test UDP服务(单播&组播)启动: - 普通UDP监听:0.0.0.0:9001 - 组播UDP监听:224.2.2.4:9002 单播消息 (来自127.0.0.1:63820) : 单播消息 组播消息 (来自192.168.1.10:64273) : 组播消息 ```
## 五. Make命令帮助 ```shell $ make Usage: make [command] [options] Available Commands: build 编译程序 run 运行程序 test 运行全部测试用例 testx name= 运行目标测试程序 clean 清理缓存 push 推送到远程仓库 help 查看帮助 ```