From e7a3cd8606a2d177cb3c9bae15aa07456c936a13 Mon Sep 17 00:00:00 2001 From: trafficlunar Date: Mon, 22 Sep 2025 11:59:35 +0100 Subject: [PATCH] feat: ping/pong in computer websocket --- internal/handler/computer.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/handler/computer.go b/internal/handler/computer.go index 420bc81..cf74980 100644 --- a/internal/handler/computer.go +++ b/internal/handler/computer.go @@ -39,6 +39,16 @@ func HandleComputerWebSocket(w http.ResponseWriter, r *http.Request) { slog.Info("WebSocket connection established") + // Respond to client pings + conn.SetPingHandler(func(appData string) error { + slog.Info("Recieved ping from client") + return conn.WriteControl( + websocket.PongMessage, + []byte(appData), // echo back the same data + time.Now().Add(10*time.Second), // deadline + ) + }) + // Mark computer online and record the start time for uptime tracking service.ComputerData.Online = true service.ComputerData.UptimeStart = int(time.Now().Unix())