git忽略__debug
This commit is contained in:
Akizon77
2025-07-08 15:08:17 +08:00
parent 61ecf7858a
commit 2cecb92440
2 changed files with 46 additions and 31 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
__debug*
agent.json agent.json
.vscode/ .vscode/
komari-agent.exe komari-agent.exe

View File

@@ -33,43 +33,57 @@ func EstablishWebSocketConnection() {
interval = flags.Interval - 1 interval = flags.Interval - 1
} }
ticker := time.NewTicker(time.Duration(interval * float64(time.Second))) dataTicker := time.NewTicker(time.Duration(interval * float64(time.Second)))
defer ticker.Stop() defer dataTicker.Stop()
for range ticker.C { heartbeatTicker := time.NewTicker(30 * time.Second)
// If no connection, attempt to connect defer heartbeatTicker.Stop()
if conn == nil {
log.Println("Attempting to connect to WebSocket...") for {
retry := 0 select {
for retry <= flags.MaxRetries { case <-dataTicker.C:
if retry > 0 { if conn == nil {
log.Println("Retrying websocket connection, attempt:", retry) log.Println("Attempting to connect to WebSocket...")
retry := 0
for retry <= flags.MaxRetries {
if retry > 0 {
log.Println("Retrying websocket connection, attempt:", retry)
}
conn, err = connectWebSocket(websocketEndpoint)
if err == nil {
log.Println("WebSocket connected")
go handleWebSocketMessages(conn, make(chan struct{}))
break
} else {
log.Println("Failed to connect to WebSocket:", err)
}
retry++
time.Sleep(time.Duration(flags.ReconnectInterval) * time.Second)
} }
conn, err = connectWebSocket(websocketEndpoint)
if err == nil { if retry > flags.MaxRetries {
log.Println("WebSocket connected") log.Println("Max retries reached.")
go handleWebSocketMessages(conn, make(chan struct{})) return
break
} else {
log.Println("Failed to connect to WebSocket:", err)
} }
retry++
time.Sleep(time.Duration(flags.ReconnectInterval) * time.Second)
} }
if retry > flags.MaxRetries { data := monitoring.GenerateReport()
log.Println("Max retries reached.") err = conn.WriteMessage(websocket.TextMessage, data)
return if err != nil {
log.Println("Failed to send WebSocket message:", err)
conn.Close()
conn = nil // Mark connection as dead
continue
}
case <-heartbeatTicker.C:
if conn != nil {
err := conn.WriteMessage(websocket.PingMessage, nil)
if err != nil {
log.Println("Failed to send heartbeat:", err)
conn.Close()
conn = nil // Mark connection as dead
}
} }
}
data := monitoring.GenerateReport()
err = conn.WriteMessage(websocket.TextMessage, data)
if err != nil {
log.Println("Failed to send WebSocket message:", err)
conn.Close()
conn = nil // Mark connection as dead
continue
} }
} }
} }