refactor: debut de la refactorisation du projet
This commit is contained in:
123
server/server.js
123
server/server.js
@@ -1,117 +1,12 @@
|
||||
const express = require('express');
|
||||
const path = require('path');
|
||||
const http = require('http');
|
||||
const { Server } = require('socket.io');
|
||||
/*
|
||||
server.js
|
||||
|
||||
const app = express();
|
||||
const server = http.createServer(app);
|
||||
const io = new Server(server);
|
||||
Ce fichier sert principalement de point d'entree au programme serveur et a lancer tous les modules necessaires a son fonctionnement
|
||||
*/
|
||||
|
||||
const PORT = process.env.PORT || 3000;
|
||||
const express = require("express");
|
||||
const path = require("path");
|
||||
const http = require("http");
|
||||
const { Server } = require("socket.io");
|
||||
|
||||
let waitingPlayer = null;
|
||||
|
||||
// Sert tous les fichiers du dossier "client"
|
||||
app.use(express.static(path.join(__dirname, "..", "client")));
|
||||
|
||||
const correctDoor = { x : 2, y : 6};
|
||||
const DOORS_TO_WIN = 3;
|
||||
|
||||
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;
|
||||
const socketRole = socketIsGuide ? "guide" : "explorateur";
|
||||
const partnerRole = socketIsGuide ? "explorateur" : "guide";
|
||||
|
||||
socket.data.partnerId = partner.id;
|
||||
partner.data.partnerId = socket.id;
|
||||
|
||||
socket.emit("status", "Partie prete !");
|
||||
partner.emit("status", "Partie prete !");
|
||||
|
||||
socket.data.role = socketRole;
|
||||
partner.data.role = partnerRole;
|
||||
|
||||
const pairState = { gameOver: false, doorsPassed: 0};
|
||||
socket.data.pairState = pairState;
|
||||
partner.data.pairState = pairState;
|
||||
|
||||
socket.emit("role", socketRole);
|
||||
partner.emit("role", partnerRole);
|
||||
}
|
||||
|
||||
socket.on("message", (data) => {
|
||||
const partnerId = socket.data.partnerId;
|
||||
if (partnerId){
|
||||
io.to(partnerId).emit("message", data);
|
||||
}
|
||||
});
|
||||
|
||||
socket.on("door_reached", (position) => {
|
||||
const pairState = socket.data.pairState;
|
||||
if (!pairState || pairState.gameOver) return;
|
||||
|
||||
const partnerId = socket.data.partnerId;
|
||||
const partnerSocket = io.sockets.sockets.get(partnerId);
|
||||
const isCorrect = position.x === correctDoor.x && position.y === correctDoor.y;
|
||||
|
||||
if (!isCorrect){
|
||||
pairState.gameOver = true;
|
||||
const result = { correct: false};
|
||||
socket.emit("door_result", result);
|
||||
if (partnerSocket) partnerSocket.emit("door_result", result);
|
||||
return;
|
||||
}
|
||||
|
||||
pairState.doorsPassed++;
|
||||
|
||||
if (pairState.doorsPassed >= DOORS_TO_WIN){
|
||||
pairState.gameOver = true;
|
||||
socket.emit("victory");
|
||||
if (partnerSocket) partnerSocket.emit("victory");
|
||||
return;
|
||||
}
|
||||
|
||||
const temp = socket.data.role;
|
||||
socket.data.role = partnerSocket.data.role;
|
||||
partnerSocket.data.role = temp;
|
||||
|
||||
const startPos = { x: 1, y: 1};
|
||||
|
||||
console.log(pairState);
|
||||
const result = {correct: isCorrect};
|
||||
|
||||
socket.emit("door_result", { correct: true});
|
||||
socket.emit("new_round", startPos);
|
||||
socket.emit("role", socket.data.role);
|
||||
|
||||
if (partnerSocket){
|
||||
partnerSocket.emit("door_result", { correct: true });
|
||||
partnerSocket.emit("new_round", startPos);
|
||||
partnerSocket.emit("role", partnerSocket.data.role);
|
||||
}
|
||||
|
||||
if (partnerId){
|
||||
io.to(partnerId).emit("door_result", result);
|
||||
}
|
||||
});
|
||||
|
||||
socket.on("disconnect", () => {
|
||||
console.log("Client deconnecte : ${socket.id}");
|
||||
if (waitingPlayer === socket){
|
||||
waitingPlayer = null;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
server.listen(PORT, () => {
|
||||
console.log(`Serveur démarré sur http://localhost:${PORT}`);
|
||||
});
|
||||
const { PORT } = require("./config.js");
|
||||
|
||||
Reference in New Issue
Block a user