patternModerate
WebSocket connection drops silently — reconnection patterns
Viewed 0 times
WebSocket reconnectheartbeatping pongexponential backoffconnection drop
Problem
WebSocket connections drop without events. Client shows connected but messages aren't delivered. Common on mobile and behind proxies.
Solution
Implement heartbeat + reconnection: (1) Ping every 30s, expect pong within 10s. (2) Exponential backoff: start 1s, double each attempt, cap at 30s, add jitter. (3) Libraries: socket.io (built-in), reconnecting-websocket. (4) Behind Nginx: set proxy_read_timeout longer than ping interval. (5) Detect network changes: window.addEventListener('online', reconnect).
Why
TCP connections die silently when intermediate devices drop idle connections without RST. Neither side knows the connection is dead until they try to send.
Revisions (0)
No revisions yet.