From 5e5189a468fa57c07ba17ba6fa8182722a5878ab Mon Sep 17 00:00:00 2001 From: Nikolay Pavlovich Date: Sat, 17 Sep 2022 23:44:54 +0300 Subject: [PATCH 1/2] fix reconnect --- recws.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/recws.go b/recws.go index 2e5b5b9..47f3e6d 100644 --- a/recws.go +++ b/recws.go @@ -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 From 254909110d912c4b8082f538bf13e7dba8141683 Mon Sep 17 00:00:00 2001 From: Nikolay Pavlovich Date: Sun, 18 Sep 2022 12:51:05 +0300 Subject: [PATCH 2/2] ignore vscode --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ae2ed59..6c45690 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .history /.idea +.vscode ls-lint \ No newline at end of file