const { Socket } = require('socket.io'); const express = require('express'); const app = express(); const http = require('http').createServer(app); const path = require('path'); const port = 8060; const io = require('socket.io')(http); app.use('/bootstrap/css', express.static(path.join(__dirname, 'node_modules/bootstrap/dist/css'))); app.use('/bootstrap/js', express.static(path.join(__dirname, 'node_modules/bootstrap/dist/js'))); app.use('/jquery', express.static(path.join(__dirname, 'node_modules/jquery/dist'))); app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'htdocs/page_acceuil2.html')); }); app.use(express.static(path.join(__dirname, 'htdocs'))); app.get('/',(req,res)=>{ res.sendFile(path.join(__dirname,'htdocs/page_jeu.html')); }); http.listen(port , ()=>{ console.log("Listening on http://localhost${port}/"); }); let rooms = []; io.on('connection', (socket) => { console.log(`[connection] ${socket.id}`); socket.on('playerData', (player) => { console.log(`[playerData] ${player.username}`); let room = null; if (!player.roomId) { room = createRoom(player); console.log(`[create room ] - ${room.id} - ${player.username}`); } else { room = rooms.find(r => r.id === player.roomId); if (room === undefined) { return; } player.roomId = room.id; room.players.push(player); } socket.join(room.id); io.to(socket.id).emit('join room', room.id); if (room.players.length === 2) { io.to(room.id).emit('start game', room.players); } }); socket.on('get rooms', () => { io.to(socket.id).emit('list rooms', rooms); }); socket.on('play', (data) => { console.log(`[Server] Play reçu : ${JSON.stringify(data)}`); // Debugging socket.broadcast.emit('play', data); // On diffuse à tous les clients }); socket.on('roque', (data) => { console.log(`[Server] Play reçu : ${JSON.stringify(data)}`); // Debugging <<<<<<< Updated upstream socket.on('echec', () => { socket.broadcast.emit('echec'); }); ======= socket.broadcast.emit('roque', data); // On diffuse à tous les clients }); >>>>>>> Stashed changes socket.on('play again', (roomId) => { const room = rooms.find(r => r.id === roomId); if (room && room.players.length === 2) { io.to(room.id).emit('play again', room.players); } }) socket.on('disconnect', () => { console.log(`[disconnect] ${socket.id}`); let room = null; rooms.forEach(r => { r.players.forEach(p => { if (p.socketId === socket.id && p.host) { room = r; rooms = rooms.filter(r => r !== room); } }) }) }); }); function createRoom(player) { const room = { id: roomId(), players: [] }; player.roomId = room.id; room.players.push(player); rooms.push(room); return room; } function roomId() { return Math.random().toString(36).substr(2, 9); }