diff --git a/public/waiting.html b/public/waiting.html index 52d3f9f..e88b9b0 100644 --- a/public/waiting.html +++ b/public/waiting.html @@ -106,9 +106,8 @@ socket.emit('room:join', { roomId, playerId }, (resp)=>{ if(resp && resp.error){ console.warn('join error', resp); - alert(resp.error || 'Impossible de rejoindre la room'); - // redirect back to home to let user retry/create - window.location.href = '/'; + // do not alert or force-redirect; show error in status and keep page for debugging/retry + try{ document.getElementById('status').textContent = resp.error || 'Impossible de rejoindre la room'; }catch(e){} return; } myPlayerId = resp.playerId; diff --git a/server.js b/server.js index 5aa2499..f504a0c 100644 --- a/server.js +++ b/server.js @@ -42,8 +42,7 @@ io.on('connection', (socket) => { socket.on('room:join', ({ roomId, playerId }, cb) => { const room = rooms.get(roomId); if (!room) return cb && cb({ error: 'room not found' }); - if (room.players.length >= 2) return cb && cb({ error: 'room full' }); - const assignedId = playerId || uuidv4(); + const assignedId = playerId || uuidv4(); // If this player was pending removal (disconnect during navigation), cancel removal if(room.removalTimers && room.removalTimers.has(assignedId)){ @@ -53,6 +52,7 @@ io.on('connection', (socket) => { // If playerId corresponds to an existing player, treat this as a reconnection let existing = room.players.find(p => p.id === assignedId); + let color; if(existing){ existing.socketId = socket.id;