💚 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
COPY ./ ./
RUN sed -i '1i\<base href="https://codefirst.iut.uca.fr/containers/vincentastolfi-maettleship/">' ./public/index.html
COPY package*.json ./
RUN npm install
COPY . .
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 players = [];
io.on("connection", (socket) => {
console.log("New connected : ", socket.id);
console.log("test")
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)
module.exports = function(io) {
if (room.players.length === 0) {
rooms.splice(roomIndex, 1);
io.on("connection", (socket) => {
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)
console.log(`Player disconnected: ${socket.id}`);
})
socket.on("first connection", (socketId) => {
let player = new Player(socketId);
players.push(player);
});
socket.on("Hello", (callback) => {
callback({
Hello: "World",
players.splice(index, 1)
console.log(`Player disconnected: ${socket.id}`);
})
socket.on("first connection", (socketId) => {
let player = new Player(socketId);
players.push(player);
});
});
socket.on("room creation", (id, callback) => {
let room = new Room();
room.addPlayer(players.find((p) => p.id === id));
rooms.push(room);
callback({
roomId: room.id,
socket.on("Hello", (callback) => {
callback({
Hello: "World",
});
});
});
socket.on("ask for room", (roomId, id) => {
let room = rooms.find((r) => r.id === roomId);
room.addPlayer(players.find((p) => p.id === id));
room.validBoards();
room.players.forEach((player) => {
io.to(player.id).emit("start game");
socket.on("room creation", (id, callback) => {
let room = new Room();
room.addPlayer(players.find((p) => p.id === id));
rooms.push(room);
callback({
roomId: room.id,
});
});
room.start();
});
socket.on("play", (roomId, id, move) => {
let room = rooms.find((r) => r.id === roomId);
room.move(move);
});
socket.on("get player", (roomId, id, callback) => {
let out = ""
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("ask for room", (roomId, id) => {
let room = rooms.find((r) => r.id === roomId);
room.addPlayer(players.find((p) => p.id === id));
room.validBoards();
room.players.forEach((player) => {
io.to(player.id).emit("start game");
});
room.start();
});
});
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("play", (roomId, id, move) => {
let room = rooms.find((r) => r.id === roomId);
room.move(move);
});
});
socket.on("update grid", (id, grid, callback) => {
const player = players.find((p) => p.id === id);
player.grid = grid;
callback({
status: true,
socket.on("get player", (roomId, id, callback) => {
let out = ""
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("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) => {
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"));
require('./app')(io);
http.listen(port, () => {
console.log(`Listening on http://localhost:${port}`);
});

@ -21,6 +21,19 @@
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 {
background-color: #fefefe;
margin: 15% auto;

Loading…
Cancel
Save