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
/.idea
.vscode
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) {
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