瀏覽代碼

fix: check connected clients before broadcasting perf data #1259

0xJacky 3 周之前
父節點
當前提交
9312e7c0a0
共有 1 個文件被更改,包括 9 次插入1 次删除
  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: