Reconnect on any read error

This commit is contained in:
Elara 2023-01-24 13:19:22 -08:00
parent c0aced05f0
commit 014be78baa
1 changed files with 20 additions and 24 deletions

View File

@ -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
}