fix: websocket connections unreliable
Constant disconnection and reconnection every couple minutes or less.
This commit is contained in:
@@ -38,9 +38,10 @@ func (c *Conn) ReadPump(ctx context.Context, hub *Hub) {
|
||||
_, data, err := c.ws.Read(ctx)
|
||||
if err != nil {
|
||||
if ctx.Err() != nil {
|
||||
slog.Info("websocket context cancelled", "connId", c.id, "humanId", c.humanID, "error", ctx.Err())
|
||||
return
|
||||
}
|
||||
slog.Debug("websocket read error", "connId", c.id, "error", err)
|
||||
slog.Info("websocket read error", "connId", c.id, "humanId", c.humanID, "error", err)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -80,6 +80,24 @@ spec:
|
||||
|
||||
---
|
||||
|
||||
# WebSocket connections need a much longer timeout than the default 30s.
|
||||
# Without this, GKE terminates idle WS connections after 30 seconds.
|
||||
apiVersion: networking.gke.io/v1
|
||||
kind: GCPBackendPolicy
|
||||
metadata:
|
||||
name: pusher-backend-policy
|
||||
spec:
|
||||
default:
|
||||
timeoutSec: 60
|
||||
connectionDraining:
|
||||
drainingTimeoutSec: 30
|
||||
targetRef:
|
||||
group: ""
|
||||
kind: Service
|
||||
name: pusher
|
||||
|
||||
---
|
||||
|
||||
apiVersion: networking.gke.io/v1
|
||||
kind: HealthCheckPolicy
|
||||
metadata:
|
||||
|
||||
@@ -77,6 +77,24 @@ spec:
|
||||
|
||||
---
|
||||
|
||||
# WebSocket connections need a much longer timeout than the default 30s.
|
||||
# Without this, GKE terminates idle WS connections after 30 seconds.
|
||||
apiVersion: networking.gke.io/v1
|
||||
kind: GCPBackendPolicy
|
||||
metadata:
|
||||
name: pusher-backend-policy
|
||||
spec:
|
||||
default:
|
||||
timeoutSec: 60
|
||||
connectionDraining:
|
||||
drainingTimeoutSec: 30
|
||||
targetRef:
|
||||
group: ""
|
||||
kind: Service
|
||||
name: pusher
|
||||
|
||||
---
|
||||
|
||||
apiVersion: networking.gke.io/v1
|
||||
kind: HealthCheckPolicy
|
||||
metadata:
|
||||
|
||||
Reference in New Issue
Block a user