2
0

Merge pull request #13 from nikepan/fix_keepalive

Fix keepalive
This commit is contained in:
Nikolay Pavlovich
2022-09-18 12:54:39 +03:00
committed by GitHub
2 changed files with 13 additions and 7 deletions
+1
View File
@@ -1,3 +1,4 @@
.history .history
/.idea /.idea
.vscode
ls-lint ls-lint
+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) { func (rc *RecConn) ReadMessage() (messageType int, message []byte, err error) {
err = ErrNotConnected err = ErrNotConnected
if rc.IsConnected() { if rc.IsConnected() {
messageType, message, err = rc.Conn.ReadMessage() conn := rc.getConn()
messageType, message, err = conn.ReadMessage()
if websocket.IsCloseError(err, websocket.CloseNormalClosure) { if websocket.IsCloseError(err, websocket.CloseNormalClosure) {
rc.Close() rc.Close()
return messageType, message, nil return messageType, message, nil
} }
if err != nil { if err != nil && conn == rc.getConn() {
rc.CloseAndReconnect() rc.CloseAndReconnect()
} }
} if err == nil {
if err == nil { rc.getKeepAliveResponse().setLastDataResponse()
rc.getKeepAliveResponse().setLastDataResponse() }
} }
return return
@@ -211,14 +212,18 @@ func (rc *RecConn) WriteJSON(v interface{}) error {
func (rc *RecConn) ReadJSON(v interface{}) error { func (rc *RecConn) ReadJSON(v interface{}) error {
err := ErrNotConnected err := ErrNotConnected
if rc.IsConnected() { if rc.IsConnected() {
err = rc.Conn.ReadJSON(v) conn := rc.getConn()
err = conn.ReadJSON(v)
if websocket.IsCloseError(err, websocket.CloseNormalClosure) { if websocket.IsCloseError(err, websocket.CloseNormalClosure) {
rc.Close() rc.Close()
return nil return nil
} }
if err != nil { if err != nil && conn == rc.getConn() {
rc.CloseAndReconnect() rc.CloseAndReconnect()
} }
if err == nil {
rc.getKeepAliveResponse().setLastDataResponse()
}
} }
return err return err