ludo-web-multiplayer/backend/socket/socketManager.js
2023-11-26 16:30:33 +01:00

40 lines
1.1 KiB
JavaScript

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;