优化代码结构

This commit is contained in:
2025-05-12 15:13:48 +08:00
parent 8bab6291b1
commit 536f36ae02
11 changed files with 45 additions and 182 deletions

View File

@@ -1,52 +1,14 @@
## todo
可配置 logger不直接使用 slog
授权测试,两种协议,三种认证方式
连接计时数据清理,避免堆泄露
找一个其他方式即时关闭未成功建立数据通道的连接
排查下套接字重复的问题
建立通道时,发送的 dst 和 tag 等信息,可以用字节表示而非 string提高效率
建立数据通道失败后,根据用户所选协议返回对应失败响应
可配配置环境变量
- 输出级别
- 退出等待时间
- 数据通道连接超时等待时间
- 目标地址连接超时等待时间
### 长期
协程池化
数据通道池化
数据通道支持 tcp 多路复用(分离逻辑流)
👆 进阶黑魔法 multipath tcp + 多路复用
切换到 gnet
## 开发相关
### 环境变量
### 目录结构
> 环境变量只记录在程序中用到的变量
>
> **构建期变量**,比如 docker-compose 中的变量,以及其他配套服务的环境变量,直接写死
server/fwd: 服务端核心代码
新增环境变量时,需要确保两个位置正确传递了变量
1. 在对应端的 .env.sample 文件中添加变量
2. 复制到 .env 文件中,并修改变量值
3. 在 docker-compose.yml 和程序中使用变量
- core: 核心代码,目前主要是连接管理
- dispatcher: 请求处理器,负责解析传入协议,并将请求分发到对应的处理器
- http: http 处理器,负责处理 http 请求
- socks: socks5 处理器,负责处理 socks5 请求
- repo: 状态仓库,所有有状态数据都通过 repo 中的接口与外部服务交互
### 更新测试环境
@@ -59,7 +21,6 @@
2. 通知并等待所有正在运行的 conn 处理协程全部关闭user, data, ctrl
3. 结束所有保存且未使用的 conn 连接user, ctrl
### 代码清理
检查 slog 级别: