WebSocket with reconnection support