refactored backend

This commit is contained in:
Wenszel
2023-11-25 19:30:07 +01:00
parent ffaaf0b6f3
commit a1b39a3a45
14 changed files with 231 additions and 163 deletions
+19
View File
@@ -0,0 +1,19 @@
const socketManager = require('./socketManager');
const sendToPlayersRolledNumber = (id, rolledNumber) => {
socketManager.getIO().to(id).emit('game:roll', rolledNumber);
};
const sendToPlayersData = room => {
socketManager.getIO().to(room._id.toString()).emit('room:data', JSON.stringify(room));
};
const sendToOnePlayerData = (id, room) => {
socketManager.getIO().to(id).emit('room:data', JSON.stringify(room));
};
const sendToOnePlayerRooms = (id, rooms) => {
socketManager.getIO().to(id).emit('room:rooms', JSON.stringify(rooms));
};
module.exports = { sendToPlayersData, sendToPlayersRolledNumber, sendToOnePlayerData, sendToOnePlayerRooms };
+39
View File
@@ -0,0 +1,39 @@
const { sessionMiddleware } = require('../config/session');
const socketManager = {
io: null,
initialize(server) {
this.io = require('socket.io')(server, {
cors: {
origin: 'http://localhost:3000',
credentials: true,
},
allowRequest: (req, callback) => {
const fakeRes = {
getHeader() {
return [];
},
setHeader(key, values) {
req.cookieHolder = values[0];
},
writeHead() {},
};
sessionMiddleware(req, fakeRes, () => {
if (req.session) {
fakeRes.writeHead();
req.session.save();
}
callback(null, true);
});
},
});
},
getIO() {
if (!this.io) {
throw new Error('Socket.io not initialized');
}
return this.io;
},
};
module.exports = socketManager;