diff --git a/internal/msggateway/client.go b/internal/msggateway/client.go index af96e7d46..a5e0f4cd4 100644 --- a/internal/msggateway/client.go +++ b/internal/msggateway/client.go @@ -449,6 +449,8 @@ func (c *Client) handlerTextMessage(b []byte) error { if err := c.conn.SetWriteDeadline(writeWait); err != nil { return err } + c.w.Lock() + defer c.w.Unlock() return c.conn.WriteMessage(MessageText, msgData) default: return fmt.Errorf("not support message type %s", msg.Type) diff --git a/internal/msggateway/long_conn.go b/internal/msggateway/long_conn.go index db6c83ffa..c1b3e27c9 100644 --- a/internal/msggateway/long_conn.go +++ b/internal/msggateway/long_conn.go @@ -17,7 +17,6 @@ package msggateway import ( "encoding/json" "net/http" - "sync" "time" "github.com/openimsdk/tools/apiresp" @@ -56,7 +55,6 @@ type GWebSocket struct { conn *websocket.Conn handshakeTimeout time.Duration writeBufferSize int - lock sync.Mutex } func newGWebSocket(protocolType int, handshakeTimeout time.Duration, wbs int) *GWebSocket { @@ -86,8 +84,6 @@ func (d *GWebSocket) GenerateLongConn(w http.ResponseWriter, r *http.Request) er } func (d *GWebSocket) WriteMessage(messageType int, message []byte) error { - d.lock.Lock() - defer d.lock.Unlock() // d.setSendConn(d.conn) return d.conn.WriteMessage(messageType, message) }