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) }