fix: concurrent write to websocket connection

pull/2866/head
withchao 10 months ago
parent 8cd1acaa53
commit 2b89def10e

@ -17,6 +17,7 @@ package msggateway
import (
"encoding/json"
"net/http"
"sync"
"time"
"github.com/openimsdk/tools/apiresp"
@ -55,6 +56,7 @@ type GWebSocket struct {
conn *websocket.Conn
handshakeTimeout time.Duration
writeBufferSize int
lock sync.Mutex
}
func newGWebSocket(protocolType int, handshakeTimeout time.Duration, wbs int) *GWebSocket {
@ -84,6 +86,8 @@ 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)
}

Loading…
Cancel
Save