serveur update

master
Aurian JAULT 2 years ago
parent 7c7ec9a0ba
commit 8ed845e4bc

@ -8,7 +8,7 @@
<body> <body>
<h1> <h1>
COUCOU HyperSet
</h1> </h1>
<div class="card-body"> <div class="card-body">
@ -16,7 +16,13 @@
<div class="mb-3"> <div class="mb-3">
<label for="username" class="form-label">Nom d'utilisateur</label> <label for="username" class="form-label">Nom d'utilisateur</label>
<input type="text" name="pseudo"class="form-control" id="username" minlength="2" maxlength="20" placeholder="Saisir votre nom d'utilisateur" required> <input type="text" name="pseudo"class="form-control" id="username" minlength="2" maxlength="20" placeholder="Saisir votre nom d'utilisateur" required>
</div> </div>
<div class="mb-3">
<label for="username" class="form-label">Room ID</label>
<input type="text" name="id" class="form-control" id="id" minlength="2" maxlength="20" placeholder="Entrez l'id du salon">
</div>
<button class="btn btn-primary" id="start" type="submit">Créer un salon privée</button> <button class="btn btn-primary" id="start" type="submit">Créer un salon privée</button>
</form> </form>
</div> </div>

@ -22,14 +22,20 @@ socket.on("connect", () => {
form.addEventListener('submit',function(e){ form.addEventListener('submit',function(e){
e.preventDefault(); 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) if(value)
{ {
perso = { perso = {
id: value, id: room,
joueur: value,
nom: socket.id, nom: socket.id,
test: "coucou"
} }
data = JSON.stringify(perso); data = JSON.stringify(perso);
console.log(`[Client Side] inputValue : ${data}`); 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;
}

@ -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) => { app.get("/client/main.js", (req, res) => {
res.sendFile(__dirname + '/client/main.js'); res.sendFile(__dirname + '/client/main.js');
}); });
@ -30,8 +35,14 @@ io.on('connection', (socket1) => {
socket1.on('disconnect',(socket)=>{ socket1.on('disconnect',(socket)=>{
console.log(`[Server Side] disconnection : ${socket1.id}`) console.log(`[Server Side] disconnection : ${socket1.id}`)
rooms.forEach(it =>{ rooms.forEach(it =>{
it.players = new Map( value = it.sockets.get(socket1.id)
[...it.players] 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 ) .filter(([k, v]) => k !== socket1.id )
) )
roomChanged(it) roomChanged(it)
@ -44,14 +55,16 @@ io.on('connection', (socket1) => {
data = JSON.parse(socket); data = JSON.parse(socket);
console.clear(); console.clear();
console.log(`[Server Side] JSON : ${socket}`) console.log(`[Server Side] JSON : ${socket}`)
console.log(`[Server Side] data : ${data.id}`)
if(rooms.length === 0) if(rooms.length === 0)
{ {
joueurId = new Map();
joueurId.set(data.nom,data.joueur)
map = new Map(); map = new Map();
map.set(data.nom,0); map.set(data.joueur,0);
rooms.push({ rooms.push({
id: data.id, id: data.id,
players: map players: map,
sockets: joueurId
}) })
roomChanged(rooms[0]) roomChanged(rooms[0])
} }
@ -60,23 +73,26 @@ io.on('connection', (socket1) => {
res = rooms.filter(e => e.id === data.id); res = rooms.filter(e => e.id === data.id);
if(res[0] != null ) if(res[0] != null )
{ {
console.log(res) if(res[0].players.get(data.joueur) != null)
if(res[0].players.get(data.nom) != 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 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]) roomChanged(res[0])
} }
} }
else{ else{
map = new Map(); map = new Map();
map.set(data.nom,0); map.set(data.joueur,0);
joueurId = new Map();
joueurId.set(data.nom,data.joueur)
rooms.push({ rooms.push({
id: data.id, id: data.id,
players: map players: map,
sockets: joueurId
}); });
roomChanged(rooms[rooms.length-1]) roomChanged(rooms[rooms.length-1])
} }
@ -87,7 +103,6 @@ io.on('connection', (socket1) => {
function displayAllRooms(rooms) function displayAllRooms(rooms)
{ {
console.log(`[Server Side] number of rooms : ${rooms.length}`); console.log(`[Server Side] number of rooms : ${rooms.length}`);
@ -115,7 +130,7 @@ function roomChanged(room)
it !== 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()))) io.to(key).emit('players',JSON.stringify(Array.from(room.players.entries())))
}); });
} }

Loading…
Cancel
Save