From 663e98af608c2d0df5519326a767291266f45975 Mon Sep 17 00:00:00 2001 From: Owen Date: Thu, 7 May 2026 17:27:01 -0700 Subject: [PATCH] Retry interval while we are disconnected --- websocket/client.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/websocket/client.go b/websocket/client.go index 3d35494..5068471 100644 --- a/websocket/client.go +++ b/websocket/client.go @@ -273,11 +273,15 @@ func (c *Client) SendMessageInterval(messageType string, data interface{}, inter count := 0 maxAttempts := 16 + c.reconnectMux.RLock() + connected := c.isConnected + c.reconnectMux.RUnlock() err := c.SendMessage(messageType, data) // Send immediately if err != nil { logger.Error("Failed to send initial message: %v", err) + } else if connected { + count++ } - count++ ticker := time.NewTicker(interval) defer ticker.Stop() @@ -288,11 +292,15 @@ func (c *Client) SendMessageInterval(messageType string, data interface{}, inter logger.Info("SendMessageInterval timed out after %d attempts for message type: %s", maxAttempts, messageType) return } + c.reconnectMux.RLock() + connected = c.isConnected + c.reconnectMux.RUnlock() err = c.SendMessage(messageType, data) if err != nil { logger.Error("Failed to send message: %v", err) + } else if connected { + count++ } - count++ case <-stopChan: return }