serveur update

master
Aurian JAULT 1 year ago
parent 7c7ec9a0ba
commit 8ed845e4bc

@ -8,7 +8,7 @@
<body>
<h1>
COUCOU
HyperSet
</h1>
<div class="card-body">
@ -16,7 +16,13 @@
<div class="mb-3">
<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>
</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>
</form>
</div>

@ -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;
}

@ -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())))
});
}

Loading…
Cancel
Save