现在已注册的节点会检查并更新 host;修复一个导致断开的连接没有正常退出的问题
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user