From 8ed845e4bc94134758619e72498cbe24f5c2c770 Mon Sep 17 00:00:00 2001 From: "aurian.jault" Date: Mon, 3 Apr 2023 09:35:45 +0200 Subject: [PATCH] serveur update --- client/index.html | 8 +++++++- client/main.js | 24 ++++++++++++++++++++---- index.js | 41 ++++++++++++++++++++++++++++------------- 3 files changed, 55 insertions(+), 18 deletions(-) diff --git a/client/index.html b/client/index.html index 97ca3e8..04e0687 100644 --- a/client/index.html +++ b/client/index.html @@ -8,7 +8,7 @@

- COUCOU + HyperSet

@@ -16,7 +16,13 @@
+
+
+ + + +
diff --git a/client/main.js b/client/main.js index 69d6935..d779786 100644 --- a/client/main.js +++ b/client/main.js @@ -22,14 +22,20 @@ socket.on("connect", () => { form.addEventListener('submit',function(e){ e.preventDefault(); - value = form.querySelector("input[name=pseudo]").value; + const value = form.querySelector("input[name=pseudo]").value; + let room = form.querySelector("input[name=id]").value; + console.log(room) + if (room === "") { + console.log("EMPTY VALUE") + room = makeid(5) + } if(value) { perso = { - id: value, + id: room, + joueur: value, nom: socket.id, - test: "coucou" } data = JSON.stringify(perso); console.log(`[Client Side] inputValue : ${data}`); @@ -38,4 +44,14 @@ form.addEventListener('submit',function(e){ }) - +function makeid(length) { + let result = ''; + const characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; + const charactersLength = characters.length; + let counter = 0; + while (counter < length) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + counter += 1; + } + return result; +} diff --git a/index.js b/index.js index ad4aef1..f90f37e 100644 --- a/index.js +++ b/index.js @@ -15,6 +15,11 @@ app.get("/", (req, res) => { }); +app.get("/.....$", (req, res) => { + res.sendFile("OEOEO CEST LA ROUTE"); +}); + + app.get("/client/main.js", (req, res) => { res.sendFile(__dirname + '/client/main.js'); }); @@ -30,8 +35,14 @@ io.on('connection', (socket1) => { socket1.on('disconnect',(socket)=>{ console.log(`[Server Side] disconnection : ${socket1.id}`) rooms.forEach(it =>{ - it.players = new Map( - [...it.players] + value = it.sockets.get(socket1.id) + if (value != null) { + it.players = new Map( + [...it.players].filter(([k,v]) => k !==value) + ) + } + it.sockets = new Map( + [...it.sockets] .filter(([k, v]) => k !== socket1.id ) ) roomChanged(it) @@ -44,14 +55,16 @@ io.on('connection', (socket1) => { data = JSON.parse(socket); console.clear(); console.log(`[Server Side] JSON : ${socket}`) - console.log(`[Server Side] data : ${data.id}`) if(rooms.length === 0) { + joueurId = new Map(); + joueurId.set(data.nom,data.joueur) map = new Map(); - map.set(data.nom,0); + map.set(data.joueur,0); rooms.push({ id: data.id, - players: map + players: map, + sockets: joueurId }) roomChanged(rooms[0]) } @@ -60,23 +73,26 @@ io.on('connection', (socket1) => { res = rooms.filter(e => e.id === data.id); if(res[0] != null ) { - console.log(res) - if(res[0].players.get(data.nom) != null) + if(res[0].players.get(data.joueur) != null) { - console.log(`[Server Side] Error : le joueur ${data.nom} est dejà dans la room`); + console.log(`[Server Side] Error : le joueur ${data.joueur} est dejà dans la room`); } else { - res[0].players.set(data.nom,0); + res[0].players.set(data.joueur,0); + res[0].sockets.set(data.nom,data.joueur) roomChanged(res[0]) } } else{ map = new Map(); - map.set(data.nom,0); + map.set(data.joueur,0); + joueurId = new Map(); + joueurId.set(data.nom,data.joueur) rooms.push({ id: data.id, - players: map + players: map, + sockets: joueurId }); roomChanged(rooms[rooms.length-1]) } @@ -87,7 +103,6 @@ io.on('connection', (socket1) => { - function displayAllRooms(rooms) { console.log(`[Server Side] number of rooms : ${rooms.length}`); @@ -115,7 +130,7 @@ function roomChanged(room) it !== room }) } - room.players.forEach((element,key) => { + room.sockets.forEach((element,key) => { io.to(key).emit('players',JSON.stringify(Array.from(room.players.entries()))) }); }