Harden auto-reconnect handshake and smooth local footsteps

This commit is contained in:
Jage9
2026-02-22 19:38:34 -05:00
parent 2362c14bc0
commit 1e3ddba625
3 changed files with 14 additions and 2 deletions

View File

@@ -1,5 +1,7 @@
import type { GameState } from '../state/gameState';
const WELCOME_TIMEOUT_MS = 8_000;
type DomRefs = {
preconnectNickname: HTMLInputElement;
nicknameContainer: HTMLDivElement;
@@ -103,6 +105,16 @@ export async function runConnectFlow(deps: ConnectFlowDeps): Promise<void> {
try {
await deps.signalingConnect(deps.onMessage);
window.setTimeout(() => {
if (deps.state.running || !deps.mediaIsConnecting()) {
return;
}
deps.mediaStopLocalMedia();
deps.signalingDisconnect();
deps.mediaSetConnecting(false);
deps.updateConnectAvailability();
deps.updateStatus('Connect failed. Timed out waiting for server welcome.');
}, WELCOME_TIMEOUT_MS);
} catch (error) {
console.error(error);
deps.mediaStopLocalMedia();