2
0

fix reconnect

This commit is contained in:
Nikolay Pavlovich
2022-09-17 23:44:54 +03:00
parent 6166edecb5
commit 5e5189a468
+12 -7
View File
@@ -139,17 +139,18 @@ func (rc *RecConn) Shutdown(writeWait time.Duration) {
func (rc *RecConn) ReadMessage() (messageType int, message []byte, err error) {
err = ErrNotConnected
if rc.IsConnected() {
messageType, message, err = rc.Conn.ReadMessage()
conn := rc.getConn()
messageType, message, err = conn.ReadMessage()
if websocket.IsCloseError(err, websocket.CloseNormalClosure) {
rc.Close()
return messageType, message, nil
}
if err != nil {
if err != nil && conn == rc.getConn() {
rc.CloseAndReconnect()
}
}
if err == nil {
rc.getKeepAliveResponse().setLastDataResponse()
if err == nil {
rc.getKeepAliveResponse().setLastDataResponse()
}
}
return
@@ -211,14 +212,18 @@ func (rc *RecConn) WriteJSON(v interface{}) error {
func (rc *RecConn) ReadJSON(v interface{}) error {
err := ErrNotConnected
if rc.IsConnected() {
err = rc.Conn.ReadJSON(v)
conn := rc.getConn()
err = conn.ReadJSON(v)
if websocket.IsCloseError(err, websocket.CloseNormalClosure) {
rc.Close()
return nil
}
if err != nil {
if err != nil && conn == rc.getConn() {
rc.CloseAndReconnect()
}
if err == nil {
rc.getKeepAliveResponse().setLastDataResponse()
}
}
return err