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)
|
_, data, err := c.ws.Read(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if ctx.Err() != nil {
|
if ctx.Err() != nil {
|
||||||
|
slog.Info("websocket context cancelled", "connId", c.id, "humanId", c.humanID, "error", ctx.Err())
|
||||||
return
|
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
|
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
|
apiVersion: networking.gke.io/v1
|
||||||
kind: HealthCheckPolicy
|
kind: HealthCheckPolicy
|
||||||
metadata:
|
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
|
apiVersion: networking.gke.io/v1
|
||||||
kind: HealthCheckPolicy
|
kind: HealthCheckPolicy
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
Reference in New Issue
Block a user