diff --git a/recws.go b/recws.go index 4fee538..5f579ea 100644 --- a/recws.go +++ b/recws.go @@ -98,7 +98,9 @@ func (rc *RecConn) ReadMessage() (messageType int, message []byte, err error) { func (rc *RecConn) WriteMessage(messageType int, data []byte) error { err := ErrNotConnected if rc.IsConnected() { + rc.mu.Lock() err = rc.Conn.WriteMessage(messageType, data) + rc.mu.Unlock() if err != nil { rc.closeAndReconnect() } @@ -116,7 +118,9 @@ func (rc *RecConn) WriteMessage(messageType int, data []byte) error { func (rc *RecConn) WriteJSON(v interface{}) error { err := ErrNotConnected if rc.IsConnected() { + rc.mu.Lock() err = rc.Conn.WriteJSON(v) + rc.mu.Unlock() if err != nil { rc.closeAndReconnect() } @@ -210,7 +214,6 @@ func (rc *RecConn) setDefaultHandshakeTimeout() { } } - func (rc *RecConn) setDefaultDialer(handshakeTimeout time.Duration) { rc.mu.Lock() defer rc.mu.Unlock()