# Core 模块重构状态报告 - v2.2.0 ## ✅ 已完成的目录结构调整 ### connect/ 目录 ✅ ``` ✅ strategy.go - 9 层策略调度 ✅ stun.go - STUN 协议实现(新建,120 行) ✅ direct.go - Direct-UDP 工厂(重构,86 行) ✅ fake_tcp.go - FakeTCP 工厂(保留) ✅ real_tcp.go - RealTCP 工厂(保留) ✅ turn.go - TURN 工厂(重构,310 行) ✅ turn_quic.go - TURN-QUIC 工厂(保留) ✅ ice.go - ICE 工厂(待更新) ✅ ws.go - WS 工厂(待完善) ``` ### transport/ 目录 ✅ ``` ✅ bind_port.go - 本地端口 Bind ✅ relay.go - Read/Write 循环(重构) ✅ wgparse.go - WG 包解析(新建) ``` ### pool/ 目录 ✅ ``` ✅ connpool.go - 连接池(新建) ``` ### proto/ 目录 ✅ ``` ✅ core.proto - gRPC 接口定义(新建) ✅ core_grpc.go - gRPC 服务实现(移动) ``` ### 根目录 ✅ ``` ✅ core.go - Core 主实例(⏳ 待修复) ✅ engine.go - Core 引擎(新建) ✅ bind.go - 连接管理(重命名) ✅ metrics.go - 监控指标(新建) ``` --- ## ⏳ 待修复的文件 ### core.go(阻塞编译) **问题列表**: 1. ❌ `interceptor *transport.Interceptor` - Interceptor 已废弃 2. ❌ `NewCoreServiceServer()` - 应该从 `proto/` 包导入 3. ❌ `c.relay.Dial()` - Relay 没有 Dial 方法 4. ❌ `transport.NewInterceptor()` - 已废弃 5. ❌ `c.relay.SetInterceptor()` - 已废弃 **需要修改为**: ```go // 1. 删除 Interceptor 字段 type Core struct { // ... // interceptor *transport.Interceptor ❌ 删除 } // 2. 使用正确的 gRPC 服务注册 import "git.zkcoi.com/zkcoi/meshray/proto" coreServiceServer := proto.NewCoreServiceServer(c, c.logger) // 3. 使用 Relay.DialPeer 或其他正确方法 conn, err := c.relay.DialPeer(ctx, peerID, config) // 4-5. 删除 Interceptor 相关代码 // 直接使用 CoreBind 替代 ``` --- ## 📊 重构进度 ### 已完成 ✅ (80%) | 模块 | 状态 | 说明 | |------|------|------| | **connect/stun.go** | ✅ 完成 | STUN 协议实现 | | **connect/direct.go** | ✅ 完成 | Direct-UDP 工厂 | | **connect/turn.go** | ✅ 完成 | TURN 工厂(自包含) | | **proto/core.proto** | ✅ 完成 | gRPC 接口定义 | | **proto/core_service_server.go** | ✅ 完成 | gRPC 服务实现 | | **engine.go** | ✅ 完成 | Core 引擎 | | **metrics.go** | ✅ 完成 | 监控指标 | | **pool/connpool.go** | ✅ 完成 | 连接池 | ### 待完善 ⏳ (20%) | 文件 | 状态 | 需要完成 | |------|------|----------| | **core.go** | ⏳ 阻塞 | 修复旧 API 引用 | | **connect/ice.go** | ⏳ 待更新 | 调用新的 stun.go | | **connect/ws.go** | ⏳ 待完善 | 完整 WS 协议实现 | | **fake_tcp.go** | ⏳ 待验证 | 确认工厂函数名 | | **real_tcp.go** | ⏳ 待验证 | 确认工厂函数名 | --- ## 🎯 下一步行动 ### P0 - 立即修复(阻塞编译) 1. **修复 core.go** ⏳ ```go // 删除 Interceptor 相关代码 // 修复 gRPC 服务注册 // 修复 Relay 调用 ``` 2. **生成 proto 代码** ⏳ ```bash protoc --go_out=. --go-grpc_out=. core/proto/core.proto ``` ### P1 - 后续完善 3. **更新 ice.go** ⏳ - 调用新的 `stun.go` 4. **完善 ws.go** ⏳ - 添加完整的 WS 协议实现 5. **添加单元测试** ⏳ - `stun_test.go` - `direct_test.go` - `turn_test.go` --- ## 🎉 重构成果 ### 代码质量提升 - ✅ **减少目录层级**:3 层 → 2 层 - ✅ **消除过度抽象**:删除 client/ 目录 - ✅ **实事求是**:按"是否被多处调用"组织文件 - ✅ **职责清晰**:connect/ 管建连,transport/ 管传输 ### 代码统计 - **新增文件**:7 个(stun.go, direct.go, turn.go, engine.go, metrics.go, connpool.go, wgparse.go) - **重构文件**:3 个(relay.go, bind.go, core_service_server.go) - **删除文件**:4 个(整个 client/ 目录) - **净减少**:~20KB 代码 --- *更新时间:2026-03-24 03:00* *版本:v2.2.0* *状态:⏳ 目录结构完全对齐,代码重构 80% 完成*