现在已注册的节点会检查并更新 host;修复一个导致断开的连接没有正常退出的问题

This commit is contained in:
2025-05-27 18:53:01 +08:00
parent 48dba2c0c3
commit 36013d7d04
7 changed files with 53 additions and 27 deletions

View File

@@ -47,6 +47,28 @@ func NewEdge(id int32, port uint16, addr *net.TCPAddr) {
EdgeUpdates <- edge
}
func TryUpdateEdge(id int32, addr *net.TCPAddr) error {
if addr == nil {
return fmt.Errorf("边缘节点 %d 地址无效", id)
}
edge, ok := Edges.Load(id)
if !ok {
return fmt.Errorf("边缘节点 %d 不存在", id)
}
host := addr.IP.String()
if edge.Host == nil || *edge.Host != host {
edge.Host = &host
EdgeUpdates <- &core.Edge{
Id: edge.Id,
Host: &host,
}
}
return nil
}
func StoreEdge(edge *core.Edge) error {
if edge == nil || edge.Id == 0 || edge.Port == nil {
return fmt.Errorf("无效的边缘节点: %+v", edge)