From d77c30dc9664f404dcc40b1dbabd6ecc2c8725a2 Mon Sep 17 00:00:00 2001 From: reubenmiller Date: Sat, 1 Jun 2024 17:19:29 +0200 Subject: [PATCH] fix(notifications2): prevent concurrent socket writes by using a single send channel --- pkg/c8y/notification2/notification2.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/c8y/notification2/notification2.go b/pkg/c8y/notification2/notification2.go index c7e9d034..a9655868 100644 --- a/pkg/c8y/notification2/notification2.go +++ b/pkg/c8y/notification2/notification2.go @@ -384,8 +384,8 @@ func (c *Notification2Client) Register(pattern string, out chan<- Message) { func (c *Notification2Client) SendMessageAck(messageIdentifier []byte) error { Logger.Debugf("Sending message ack: %s", messageIdentifier) - c.ws.SetWriteDeadline(time.Now().Add(c.ConnectionOptions.GetWriteDuration())) - return c.ws.WriteMessage(websocket.TextMessage, messageIdentifier) + c.send <- messageIdentifier + return nil } func (c *Notification2Client) worker() error { @@ -437,6 +437,6 @@ func (c *Notification2Client) worker() error { // Unsubscribe unsubscribe to a given pattern func (c *Notification2Client) Unsubscribe() error { Logger.Info("unsubscribing") - c.ws.SetWriteDeadline(time.Now().Add(c.ConnectionOptions.GetWriteDuration())) - return c.ws.WriteMessage(websocket.TextMessage, []byte("unsubscribe_subscriber")) + c.send <- []byte("unsubscribe_subscriber") + return nil }