package app import ( "proxy-server/gateway/core" "proxy-server/utils" ) type Stoppable interface { Stop() } var ( Id int32 Name string PlatformSecret string // 平台密钥,验证接收的请求是否属于平台 Assigns = core.SyncMap[uint16, int32]{} // 转发端口 -> 节点 ID Edges = core.SyncMap[int32, uint16]{} // 节点 ID -> 转发端口 Permits = core.SyncMap[int32, *core.Permit]{} // 转发端口 -> 权限配置 CtrlConnWg utils.CountWaitGroup // 控制通道计数器 DataConnWg utils.CountWaitGroup // 数据通道计数器 FwdLesWg utils.CountWaitGroup // 转发监听端口计数器 UserConnWg utils.CountWaitGroup // 用户连接计数器 UserConnMap core.SyncMap[string, *core.Conn] // 用户连接暂存 ) func AddEdge(id int32, port uint16) { Edges.Store(id, port) Assigns.Store(port, id) } func DelEdge(port uint16) { id, _ := Assigns.LoadAndDelete(port) Edges.Delete(id) } func LoadPermit(port uint16) *core.Permit { id, ok := Assigns.Load(port) if !ok { return nil } permit, ok := Permits.Load(id) if !ok { return nil } return permit }