🔧 few updates for connexion reliability

docker-deployment
Vincent ASTOLFI 9 months ago
parent ce34fa94dc
commit 1d3aa1a3fe

@ -3,8 +3,9 @@ const { Grid } = require("./Grid.js");
const { Piece } = require("./Piece.js");
class Player {
constructor(socketId) {
constructor(socketId, username) {
this.id = socketId;
this.username = username
this.grid = new Grid();
this.pieces = [];
this.pieces.push(new Piece(1, { x: 0, y: 0 }, { x: 0, y: 0 }));

@ -1,12 +1,13 @@
const mysql = require("mysql");
const connection = mysql.createConnection({
const connection = mysql.createPool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME
});
/*
connection.connect((err) => {
if (err) {
console.error('Error connecting to the database:', err);
@ -14,5 +15,6 @@ connection.connect((err) => {
}
console.log('Connected to the MySQL database');
});
*/
module.exports = connection;

@ -52,7 +52,6 @@ app.post('/logIn', (req, res) => {
console.error('Error inserting user into the database:', err);
return res.status(500).send({message: 'Internal server error.'});
}
if (results.length === 1) {
const token = jwt.sign({ pseudo }, secretKey, { expiresIn: '1h' });
res.cookie('authToken', token, { httpOnly: true, secure: false });
@ -155,8 +154,21 @@ io.on("connection", (socket) => {
})
socket.on("first connection", (socketId) => {
let player = new Player(socketId);
const cookies = socket.request.headers.cookie;
const authToken = cookies.split('; ').find(cookie => cookie.startsWith('authToken=')).split('=')[1];
if (authToken) {
try {
const decoded = jwt.verify(authToken, secretKey);
const username = decoded.pseudo;
let player = new Player(socketId, username);
players.push(player);
} catch (ex) {
console.error('Invalid token:', ex);
}
} else {
console.log('No auth token found in cookies.');
}
});
socket.on("Hello", (callback) => {
@ -181,9 +193,15 @@ io.on("connection", (socket) => {
room.addPlayer(players.find((p) => p.id === id));
room.validBoards();
for (let i = 0; i < room.players.length; i++) {
io.to(room.players[i].id).emit("start game", room.players[i === 0 ? 1 : 0].username)
}
/*
room.players.forEach((player) => {
io.to(player.id).emit("start game");
});
*/
askToPlay(room.start());
});

@ -17,10 +17,11 @@ function startConnection() {
.addEventListener("click", onJoinRoom());
}
socket.on("start game", () => {
socket.on("start game", (username) => {
const ennemyBoard = document.querySelector("#ennemy_board");
ennemyBoard.classList.remove("hidden-element");
console.log(username)
drawGrid();
drawEnnemyGrid();

Loading…
Cancel
Save