refactored backend
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
const CONNECTION_URI = require('../credentials.js');
|
||||
|
||||
module.exports = function (mongoose) {
|
||||
mongoose.set('useFindAndModify', false);
|
||||
mongoose
|
||||
.connect(CONNECTION_URI, {
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
})
|
||||
.then(() => {
|
||||
console.log('MongoDB Connected…');
|
||||
})
|
||||
.catch(err => console.error(err));
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
const session = require('express-session');
|
||||
const CONNECTION_URI = require('../credentials.js');
|
||||
const MongoDBStore = require('connect-mongodb-session')(session);
|
||||
const store = new MongoDBStore({
|
||||
uri: CONNECTION_URI,
|
||||
collection: 'sessions',
|
||||
});
|
||||
const sessionMiddleware = session({
|
||||
store: store,
|
||||
credentials: true,
|
||||
cookie: {
|
||||
httpOnly: false,
|
||||
secure: false,
|
||||
},
|
||||
secret: 'secret',
|
||||
saveUninitialized: true,
|
||||
resave: true,
|
||||
maxAge: 20000,
|
||||
});
|
||||
|
||||
const wrap = expressMiddleware => (socket, next) => expressMiddleware(socket.request, {}, next);
|
||||
|
||||
module.exports = { sessionMiddleware, wrap };
|
||||
@@ -0,0 +1,26 @@
|
||||
const socketManager = require('../socket/socketManager');
|
||||
const registerPlayerHandlers = require('../handlers/playerHandler');
|
||||
const registerRoomHandlers = require('../handlers/roomHandler');
|
||||
const registerGameHandlers = require('../handlers/gameHandler');
|
||||
const { sessionMiddleware, wrap } = require('../config/session');
|
||||
|
||||
module.exports = function (server) {
|
||||
socketManager.initialize(server);
|
||||
socketManager.getIO().engine.on('initial_headers', (headers, req) => {
|
||||
if (req.cookieHolder) {
|
||||
headers['set-cookie'] = req.cookieHolder;
|
||||
delete req.cookieHolder;
|
||||
}
|
||||
});
|
||||
socketManager.getIO().use(wrap(sessionMiddleware));
|
||||
socketManager.getIO().on('connection', socket => {
|
||||
registerPlayerHandlers(socket);
|
||||
registerRoomHandlers(socket);
|
||||
registerGameHandlers(socket);
|
||||
if (socket.request.session.roomId) {
|
||||
const roomId = socket.request.session.roomId.toString();
|
||||
socket.join(roomId);
|
||||
socket.emit('player:data', JSON.stringify(socket.request.session));
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user