Files
Meshray-Manager/docs/core 重构_Phase2 进度.md
T
2026-06-30 15:14:37 +08:00

2.5 KiB
Raw Blame History

Core 重构 Phase 2 进度报告

已完成

1. connect/stun.go 重构完成

修改内容

  • 删除重复的 STUNClient 结构体(约 100 行代码)
  • 删除 queryServer() 等底层 STUN 协议实现
  • 改为调用 client/stun_client.goGetExternalIP() 方法

重构对比

// 修改前:connect 自己实现 STUN 客户端
type STUNClient struct { ... }
func (c *STUNClient) GetExternalAddress() { ... }

// 修改后:调用 client 层的协议客户端
stun := client.NewSTUNClient(servers, logger)
result := stun.GetExternalIP()

删除行数: ~95 行
新增行数: ~5 行(import + 调用)
净减少: -90 行


待完成

2. connect/turn_udp.go 重构(进行中)

当前状态

  • 包含完整的 TURNClient 实现(167 行)
  • 包含 allocateUDP/allocateTCP 等底层协议逻辑
  • 需要改为调用 client/turn_client.go

重构方案

// 修改前:connect 自己实现 TURN 客户端
type TURNClient struct { ... }
func (c *TURNClient) Allocate() { ... } // 167 行实现

// 修改后:调用 client 层的协议客户端
turn := client.NewTURNClient(config)
relayConn := turn.Allocate()
return NewTURNConn(relayConn), nil

预计删除: ~350 行
预计新增: ~20 行
净减少: -330 行


3. 其他待清理的文件

fake_tcp.go / real_tcp.go

  • 保持现状(已经是工厂模式)
  • 这两个文件是真正的建连逻辑,不需要调用 client/

ws.go

  • 检查是否有重复的 WSClient 实现
  • 🔄 如果需要,改为调用 client/ws_client.go

📊 重构收益统计

文件 修改前行数 修改后行数 净减少 状态
connect/stun.go 180 85 -95 完成
connect/turn_udp.go 409 ~60 -349 进行中
fake_tcp_factory.go 55 0 -55 已删除
real_tcp_factory.go 55 0 -55 已删除
总计 699 ~145 -554 -

🎯 下一步行动

  1. 立即执行: 重构 connect/turn_udp.go

    • 删除 TURNClient 完整实现
    • 简化为调用 client/turn_client.go
    • 只保留 TURNFactory.Dial() 逻辑
  2. 验证编译:

    go build ./core/connect
    go build ./core
    
  3. 更新文档:

    • 在 README 中说明新的目录结构
    • 更新 core 分层架构文档

创建时间:2026-03-24 00:45
Phase 2 进度:1/3 完成