重命名客户端相关术语为节点;移动 utils 包到根路径;优化网关对节点各种连接状态的处理,并在节点断联后统一清理资源

This commit is contained in:
2025-05-17 10:00:28 +08:00
parent 20ac7dbd91
commit 84e01d3b50
14 changed files with 150 additions and 129 deletions

View File

@@ -11,7 +11,7 @@ import (
"proxy-server/gateway/debug"
"proxy-server/gateway/env"
"proxy-server/gateway/fwd/metrics"
"proxy-server/pkg/utils"
utils2 "proxy-server/utils"
"strconv"
"sync"
"time"
@@ -26,7 +26,7 @@ func (s *Service) listenData() error {
if err != nil {
return fmt.Errorf("监听数据通道失败: %w", err)
}
defer utils.Close(ls)
defer utils2.Close(ls)
// 异步等待连接
var connCh = make(chan net.Conn)
@@ -44,7 +44,7 @@ func (s *Service) listenData() error {
select {
case connCh <- conn:
case <-s.ctx.Done():
utils.Close(conn)
utils2.Close(conn)
return
}
}
@@ -59,7 +59,7 @@ func (s *Service) listenData() error {
s.dataConnWg.Add(1)
go func() {
defer s.dataConnWg.Done()
defer utils.Close(conn)
defer utils2.Close(conn)
err := s.processDataConn(conn)
if err != nil {
slog.Error("处理数据通道连接失败", "err", err)
@@ -76,7 +76,7 @@ func (s *Service) processDataConn(client net.Conn) error {
var buf = make([]byte, 17)
_, err := io.ReadFull(reader, buf)
if err != nil {
return fmt.Errorf("从客户端获取连接结果失败: %w", err)
return fmt.Errorf("从节点获取连接结果失败: %w", err)
}
tag := buf[0:16]
@@ -88,7 +88,7 @@ func (s *Service) processDataConn(client net.Conn) error {
if !ok {
return fmt.Errorf("用户连接已关闭tag%s", tagStr)
}
defer utils.Close(user)
defer utils2.Close(user)
// 检查状态
if status != 1 {
@@ -99,7 +99,7 @@ func (s *Service) processDataConn(client net.Conn) error {
data := time.Now()
userPipeReader, userPipeWriter := io.Pipe()
defer utils.Close(userPipeWriter)
defer utils2.Close(userPipeWriter)
teeUser := io.TeeReader(user, userPipeWriter)
go func() {
@@ -131,7 +131,7 @@ func (s *Service) processDataConn(client net.Conn) error {
case <-s.ctx.Done():
return nil
case <-utils.WgWait(&wg):
case <-utils2.WgWait(&wg):
proxy := time.Now()
start, startOk := metrics.TimerStart.Load(user.Conn)