mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-10-27 05:52:29 +08:00
fix: concurrent write to websocket connection
This commit is contained in:
parent
2b89def10e
commit
af2f0209d6
@ -449,6 +449,8 @@ func (c *Client) handlerTextMessage(b []byte) error {
|
|||||||
if err := c.conn.SetWriteDeadline(writeWait); err != nil {
|
if err := c.conn.SetWriteDeadline(writeWait); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
c.w.Lock()
|
||||||
|
defer c.w.Unlock()
|
||||||
return c.conn.WriteMessage(MessageText, msgData)
|
return c.conn.WriteMessage(MessageText, msgData)
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("not support message type %s", msg.Type)
|
return fmt.Errorf("not support message type %s", msg.Type)
|
||||||
|
|||||||
@ -17,7 +17,6 @@ package msggateway
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"net/http"
|
"net/http"
|
||||||
"sync"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/openimsdk/tools/apiresp"
|
"github.com/openimsdk/tools/apiresp"
|
||||||
@ -56,7 +55,6 @@ type GWebSocket struct {
|
|||||||
conn *websocket.Conn
|
conn *websocket.Conn
|
||||||
handshakeTimeout time.Duration
|
handshakeTimeout time.Duration
|
||||||
writeBufferSize int
|
writeBufferSize int
|
||||||
lock sync.Mutex
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func newGWebSocket(protocolType int, handshakeTimeout time.Duration, wbs int) *GWebSocket {
|
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 {
|
func (d *GWebSocket) WriteMessage(messageType int, message []byte) error {
|
||||||
d.lock.Lock()
|
|
||||||
defer d.lock.Unlock()
|
|
||||||
// d.setSendConn(d.conn)
|
// d.setSendConn(d.conn)
|
||||||
return d.conn.WriteMessage(messageType, message)
|
return d.conn.WriteMessage(messageType, message)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user