mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-08-05 13:53:39 +00:00
The read deadline was refreshed only by protocol pong frames, so a client whose ping/pong control frames were delayed more than 6 seconds or eaten by a middlebox (Cloudflare edge, AV proxies) was killed every 60 seconds even while its 30-second JSON heartbeats were arriving. Demo logs show the signature clearly: sessions dying at exactly 60s/114s/168s, i.e. zero, one, or two pongs before execution, while the user watched the badge cycle through Reconnecting on an otherwise healthy connection. Refresh the read deadline on every successful read, widen it to 90s so a background tab throttled to one heartbeat per minute still survives, and ping every 30s so pong-only clients tolerate two lost round trips. Contract-Neutral: websocket keepalive hardening: read-deadline/ping cadence only, no payload or contract delta |
||
|---|---|---|
| .. | ||
| concurrency_test.go | ||
| hub.go | ||
| hub_alert_tenant_test.go | ||
| hub_concurrency_test.go | ||
| hub_more2_test.go | ||
| hub_more_test.go | ||
| hub_multitenant_test.go | ||
| hub_observability_test.go | ||
| hub_tenant_test.go | ||
| hub_test.go | ||