From fa635ad9f1af3501d7917c4167a59854d5b488ec Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Thu, 9 Jan 2025 22:21:43 +0800 Subject: [PATCH] feat: add mutex lock to WebSocketClient for thread-safe message sending --- ws_client/client.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ws_client/client.go b/ws_client/client.go index dc560f1..620e62b 100644 --- a/ws_client/client.go +++ b/ws_client/client.go @@ -4,6 +4,7 @@ import ( "encoding/json" "log" "net/url" + "sync" "git.lxtend.com/qqbot/action" "git.lxtend.com/qqbot/constants" @@ -16,6 +17,7 @@ type WebSocketClient struct { conn *websocket.Conn closed bool Done chan struct{} + lock sync.Mutex } func NewWebSocketClient(scheme, host, path string) (*WebSocketClient, error) { @@ -88,6 +90,8 @@ func (c *WebSocketClient) receiveMessages() { } func (c *WebSocketClient) SendMessage(messageType int, message []byte) error { + c.lock.Lock() + defer c.lock.Unlock() return c.conn.WriteMessage(messageType, message) }