Browse Source

fix: check connected clients before broadcasting perf data #1259

0xJacky 2 weeks ago
parent
commit
9312e7c0a0
1 changed files with 9 additions and 1 deletions
  1. 9 1
      api/nginx/websocket.go

+ 9 - 1
api/nginx/websocket.go

@@ -106,9 +106,17 @@ func (h *NginxPerformanceHub) sendPerformanceDataToClient(client *NginxPerforman
 
 // broadcastPerformanceData sends performance data to all connected clients
 func (h *NginxPerformanceHub) broadcastPerformanceData() {
+	h.mutex.RLock()
+
+	// Check if there are any connected clients
+	if len(h.clients) == 0 {
+		h.mutex.RUnlock()
+		return
+	}
+
+	// Only get performance data if there are connected clients
 	response := performance.GetPerformanceData()
 
-	h.mutex.RLock()
 	for client := range h.clients {
 		select {
 		case client.send <- response: