fix: agent ws connect panic

This commit is contained in:
engigu
2026-01-01 13:58:27 +08:00
parent c29fb178a2
commit ac44bc450b
3 changed files with 6 additions and 23 deletions
+4 -3
View File
@@ -161,12 +161,13 @@ func (m *AgentWSManager) Register(agentID uint, conn *websocket.Conn, ip string)
return ac
}
// Unregister 注销连接
func (m *AgentWSManager) Unregister(agentID uint) {
// Unregister 注销连接(只注销指定的连接实例)
func (m *AgentWSManager) Unregister(agentID uint, ac *AgentConnection) {
m.mu.Lock()
defer m.mu.Unlock()
if conn, exists := m.connections[agentID]; exists {
// 只有当前连接和 map 中的连接是同一个实例时才删除
if conn, exists := m.connections[agentID]; exists && conn == ac {
// 减少 IP 连接计数
if conn.IP != "" {
if count, ok := m.ipConnections[conn.IP]; ok && count > 0 {