isle-portable/extensions/src
Christian Semmler 08f44b9a93
Fix infinite reconnection loop caused by stale WebSocket onclose events
When AttemptReconnect() disconnects a still-CONNECTING socket and creates
a new one, the old socket's onclose fires asynchronously after Connect()
clears m_disconnectedFlag, setting it back to 1. With connectedFlag=1
and disconnectedFlag=1 both stuck, the state machine bounces between
STATE_CONNECTED and STATE_RECONNECTING every frame (30-60x/sec) without
ever reaching the backoff timer or attempt limit.

Guard all WebSocket event handlers to only modify shared flags when
their socket is still the active one in Module._mpSockets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:25:06 -07:00
..
common Claude/npc animations local playback (#20) 2026-03-21 22:40:15 +01:00
multiplayer Fix infinite reconnection loop caused by stale WebSocket onclose events 2026-03-24 17:25:06 -07:00
thirdpersoncamera Nick bricks memories (#21) 2026-03-23 23:46:16 +01:00
extensions.cpp Separate extensions (#18) 2026-03-13 23:12:07 +01:00
multiplayer.cpp Add WebSocket reconnection with exponential backoff 2026-03-16 13:34:45 -07:00
siloader.cpp Claude/npc animations local playback (#20) 2026-03-21 22:40:15 +01:00
textureloader.cpp Claude/npc animations local playback (#20) 2026-03-21 22:40:15 +01:00
thirdpersoncamera.cpp Claude/npc animations local playback (#20) 2026-03-21 22:40:15 +01:00