fix: concurrent write to websocket connection

This commit is contained in:
withchao 2024-11-21 17:26:42 +08:00
parent 2b89def10e
commit af2f0209d6
2 changed files with 2 additions and 4 deletions

View File

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

View File

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