diff --git a/client/src/views/games/GameEndModal.vue b/client/src/views/games/GameEndModal.vue index 3631ee7..2ccd1b9 100644 --- a/client/src/views/games/GameEndModal.vue +++ b/client/src/views/games/GameEndModal.vue @@ -35,9 +35,6 @@
Controles bloqueados — clics: {{ clickCount }}/5 para habilitarlos
Controles habilitados
-
- Ronda {{ round }} de {{ totalRounds }} — aún quedan rondas por jugar. La siguiente comenzará en breve. -
Se cerrará en {{ remainingSeconds }}s
diff --git a/server/src/rooms/GameRoom.ts b/server/src/rooms/GameRoom.ts index fc34cec..359ec4b 100644 --- a/server/src/rooms/GameRoom.ts +++ b/server/src/rooms/GameRoom.ts @@ -97,6 +97,8 @@ export class GameRoom extends Room { } onCreate(options: any) { + // Keep room alive even if all clients disconnect (avoid auto-dispose during reconnection windows) + try { (this as any).autoDispose = false; } catch {} this.setState(new GameState()); this.state.roomId = this.roomId; // Expose status via metadata for lobby listing @@ -472,8 +474,9 @@ export class GameRoom extends Room { } } - // Allow reconnection; when it happens, mark player connected and resume if both are present - const reconnection = this.allowReconnection(client, 30); + // Allow reconnection without a short timeout; give players ample time to return + // (24 hours window to prevent unexpected room disposal due to short timeouts) + const reconnection = this.allowReconnection(client, 60 * 60 * 24); reconnection.then((newClient) => { const p = this.state.players.get(client.sessionId); if (p) {