diff --git a/client/index.html b/client/index.html index 1cae1e7..69bf538 100644 --- a/client/index.html +++ b/client/index.html @@ -7,10 +7,21 @@

Bonjour !

Ceci est une page statique servie par Express.

+ + - + diff --git a/server/server.js b/server/server.js index 0df6018..f25fc39 100644 --- a/server/server.js +++ b/server/server.js @@ -9,14 +9,44 @@ const io = new Server(server); const PORT = process.env.PORT || 3000; +let waitingPlayer = null; + // Sert tous les fichiers du dossier "client" app.use(express.static(path.join(__dirname, "..", "client"))); io.on("connection", (socket) => { console.log("Un client s'est connecte : ${socket.id}"); + if (waitingPlayer === null){ + waitingPlayer = socket; + socket.emit("status", "En attente d'un second joueur..."); + } else { + const partner = waitingPlayer; + waitingPlayer = null; + + const socketIsGuide = Math.random() < 0.5; + socket.emit("role", socketIsGuide ? "guide" : "explorateur"); + partner.emit("role", socketIsGuide ? "explorateur" : "guide"); + + socket.data.partnerId = partner.id; + partner.data.partnerId = socket.id; + + socket.emit("status", "Partie prete !"); + partner.emit("status", "Partie prete !"); + } + + socket.on("message", (data) => { + const partnerId = socket.data.partnerId; + if (partnerId){ + io.to(partnerId).emit("message", data); + } + }); + socket.on("disconnect", () => { console.log("Client deconnecte : ${socket.id}"); + if (waitingPlayer === socket){ + waitingPlayer = null; + } }); });