40 lines
1.1 KiB
JavaScript
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;
|