💚 New CD test
continuous-integration/drone/push Build is passing Details

docker-deployment
Vincent ASTOLFI 11 months ago
parent 966cb3d9c5
commit c7328b7450

@ -1,7 +1,7 @@
FROM node:latest FROM node:16
WORKDIR /usr/src/app WORKDIR /usr/src/app
COPY ./ ./ COPY package*.json ./
RUN sed -i '1i\<base href="https://codefirst.iut.uca.fr/containers/vincentastolfi-maettleship/">' ./public/index.html
RUN npm install RUN npm install
COPY . .
EXPOSE 8081 EXPOSE 8081
CMD [ "node", "index.js" ] CMD ["node", "index.js"]

227
app.js

@ -4,127 +4,132 @@ const { Player } = require(`${__dirname}/businesses/Player.js`);
let rooms = []; let rooms = [];
let players = []; let players = [];
io.on("connection", (socket) => { console.log("test")
console.log("New connected : ", socket.id);
socket.on("disconnect", () => { module.exports = function(io) {
const index = players.findIndex((p) => p.id === socket.id)
const roomIndex = rooms.findIndex(room =>
room.players.some(player => player.id === socket.id)
);
if (roomIndex !== -1) {
const room = rooms[roomIndex];
const opponent = room.players.find(player => player.id !== socket.id);
const inRoomIndex = room.players.findIndex(player => player.id === socket.id);
if (opponent) {
io.to(opponent.id).emit('opponent left');
}
room.players.splice(inRoomIndex, 1)
if (room.players.length === 0) { io.on("connection", (socket) => {
rooms.splice(roomIndex, 1); console.log("New connected : ", socket.id);
socket.on("disconnect", () => {
const index = players.findIndex((p) => p.id === socket.id)
const roomIndex = rooms.findIndex(room =>
room.players.some(player => player.id === socket.id)
);
if (roomIndex !== -1) {
const room = rooms[roomIndex];
const opponent = room.players.find(player => player.id !== socket.id);
const inRoomIndex = room.players.findIndex(player => player.id === socket.id);
if (opponent) {
io.to(opponent.id).emit('opponent left');
}
room.players.splice(inRoomIndex, 1)
if (room.players.length === 0) {
rooms.splice(roomIndex, 1);
}
} }
}
players.splice(index, 1)
players.splice(index, 1)
console.log(`Player disconnected: ${socket.id}`);
console.log(`Player disconnected: ${socket.id}`); })
})
socket.on("first connection", (socketId) => {
socket.on("first connection", (socketId) => { let player = new Player(socketId);
let player = new Player(socketId); players.push(player);
players.push(player);
});
socket.on("Hello", (callback) => {
callback({
Hello: "World",
}); });
});
socket.on("Hello", (callback) => {
socket.on("room creation", (id, callback) => { callback({
let room = new Room(); Hello: "World",
room.addPlayer(players.find((p) => p.id === id)); });
rooms.push(room);
callback({
roomId: room.id,
}); });
});
socket.on("room creation", (id, callback) => {
socket.on("ask for room", (roomId, id) => { let room = new Room();
let room = rooms.find((r) => r.id === roomId); room.addPlayer(players.find((p) => p.id === id));
rooms.push(room);
room.addPlayer(players.find((p) => p.id === id));
room.validBoards(); callback({
roomId: room.id,
room.players.forEach((player) => { });
io.to(player.id).emit("start game");
}); });
room.start(); socket.on("ask for room", (roomId, id) => {
}); let room = rooms.find((r) => r.id === roomId);
socket.on("play", (roomId, id, move) => { room.addPlayer(players.find((p) => p.id === id));
let room = rooms.find((r) => r.id === roomId); room.validBoards();
room.move(move); room.players.forEach((player) => {
}); io.to(player.id).emit("start game");
});
socket.on("get player", (roomId, id, callback) => {
let out = "" room.start();
const room = rooms.find((r) => r.id === roomId)
if (room === undefined) {
out = players.find((p) => p.id === id);
} else {
out = room.players.find((p) => p.id === id)
}
callback({
player: out,
}); });
});
socket.on("play", (roomId, id, move) => {
socket.on("get ennemy", (roomId, id, callack) => { let room = rooms.find((r) => r.id === roomId);
const room = rooms.find((r) => r.id === roomId);
const out = room.players.find((p) => p.id !== id); room.move(move);
callack({
player: out,
}); });
});
socket.on("get player", (roomId, id, callback) => {
socket.on("update grid", (id, grid, callback) => { let out = ""
const player = players.find((p) => p.id === id); const room = rooms.find((r) => r.id === roomId)
player.grid = grid;
if (room === undefined) {
callback({ out = players.find((p) => p.id === id);
status: true, } else {
out = room.players.find((p) => p.id === id)
}
callback({
player: out,
});
});
socket.on("get ennemy", (roomId, id, callack) => {
const room = rooms.find((r) => r.id === roomId);
const out = room.players.find((p) => p.id !== id);
callack({
player: out,
});
});
socket.on("update grid", (id, grid, callback) => {
const player = players.find((p) => p.id === id);
player.grid = grid;
callback({
status: true,
});
});
socket.on("reset grid", (roomId) => {
const player = rooms.find((r) => r.id === roomId).players[0]
player.resetGrid();
})
socket.on("update piece", (playerId, piece) => {
const player = players.find((p) => p.id === playerId);
const index = player.pieces.findIndex((p) => p.id === piece.id);
player.pieces[index] = piece;
});
socket.on("change selection status", (playerId, pieceId, status) => {
players
.find((p) => p.id === playerId)
.pieces.find((piece) => piece.id === pieceId).isSelected = status;
}); });
}); });
}
socket.on("reset grid", (roomId) => {
const player = rooms.find((r) => r.id === roomId).players[0]
player.resetGrid();
})
socket.on("update piece", (playerId, piece) => {
const player = players.find((p) => p.id === playerId);
const index = player.pieces.findIndex((p) => p.id === piece.id);
player.pieces[index] = piece;
});
socket.on("change selection status", (playerId, pieceId, status) => {
players
.find((p) => p.id === playerId)
.pieces.find((piece) => piece.id === pieceId).isSelected = status;
});
});
const askToPlay = (game) => { const askToPlay = (game) => {
io.to(game.actualPlayer).emit("play"); io.to(game.actualPlayer).emit("play");

@ -0,0 +1,13 @@
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8081:8081"
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
environment:
- NODE_ENV=production

@ -6,6 +6,8 @@ const port = 8081;
app.use(express.static("public")); app.use(express.static("public"));
require('./app')(io);
http.listen(port, () => { http.listen(port, () => {
console.log(`Listening on http://localhost:${port}`); console.log(`Listening on http://localhost:${port}`);
}); });

@ -21,6 +21,19 @@
background-color: rgba(0,0,0,0.4); background-color: rgba(0,0,0,0.4);
} }
#gameEndedModal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0,0.4);
}
#opponentLeftModalContent { #opponentLeftModalContent {
background-color: #fefefe; background-color: #fefefe;
margin: 15% auto; margin: 15% auto;

Loading…
Cancel
Save