新增节点下线更新函数,节点断联后提交节点状态更新;重命名边缘节点相关函数以提高可读性;调整节点更新通知通道大小

This commit is contained in:
2025-05-28 14:41:11 +08:00
parent 49f60b3e87
commit 5b5b674293
3 changed files with 25 additions and 12 deletions

View File

@@ -28,11 +28,11 @@ var (
UserConnWg utils.CountWaitGroup // 用户连接计数器
UserConnMap core.SyncMap[string, *core.Conn] // 用户连接暂存
LockPortAssign = sync.Mutex{} // 锁定端口分配,防止并发冲突
EdgeUpdates = make(chan *core.Edge, 1000) // 节点更新通知通道
LockPortAssign = sync.Mutex{} // 锁定端口分配,防止并发冲突
EdgeUpdates = make(chan *core.Edge, 100) // 节点更新通知通道
)
func NewEdge(id int32, port uint16, addr *net.TCPAddr) error {
func OnlineEdgeNew(id int32, port uint16, addr *net.TCPAddr) error {
if addr == nil {
return fmt.Errorf("边缘节点 %d 地址无效", id)
}
@@ -59,7 +59,7 @@ func NewEdge(id int32, port uint16, addr *net.TCPAddr) error {
return nil
}
func TryUpdateEdge(id int32, addr *net.TCPAddr) error {
func OnlineEdgeUpdate(id int32, addr *net.TCPAddr) error {
if addr == nil {
return fmt.Errorf("边缘节点 %d 地址无效", id)
}
@@ -85,6 +85,21 @@ func TryUpdateEdge(id int32, addr *net.TCPAddr) error {
return nil
}
func OfflineEdge(id int32) error {
edge, ok := Edges.Load(id)
if !ok || edge == nil {
return fmt.Errorf("边缘节点 %d 不存在", id)
}
*edge.Status = core.EdgeOffline
EdgeUpdates <- &core.Edge{
Id: id,
Status: &core.EdgeOffline,
}
return nil
}
func StoreEdge(edge *core.Edge) error {
if edge == nil || edge.Id == 0 || edge.Port == nil {
return fmt.Errorf("无效的边缘节点: %+v", edge)