Reconnect on any read error
This commit is contained in:
parent
c0aced05f0
commit
014be78baa
@ -8,7 +8,6 @@ import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"reflect"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/cenkalti/backoff/v4"
|
||||
@ -58,9 +57,7 @@ func NewWebSocket(baseURL string) (*WSClient, error) {
|
||||
if err != nil {
|
||||
out.errCh <- err
|
||||
|
||||
// gorilla/websocket eats the error type, so I have to check
|
||||
// the string itself
|
||||
if strings.HasSuffix(err.Error(), "connection timed out") {
|
||||
conn.Close()
|
||||
err = backoff.RetryNotify(
|
||||
func() error {
|
||||
conn, _, err = keepaliveDialer().Dial(u.JoinPath("ws").String(), nil)
|
||||
@ -80,7 +77,6 @@ func NewWebSocket(baseURL string) (*WSClient, error) {
|
||||
if err != nil {
|
||||
out.errCh <- err
|
||||
}
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
@ -201,7 +197,7 @@ func keepaliveDialer() *websocket.Dialer {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = conn.SetKeepAlivePeriod(time.Second)
|
||||
err = conn.SetKeepAlivePeriod(10 * time.Second)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user