const express = require('express'); const logger = require('morgan'); const cookieParser = require('cookie-parser'); const expressSession = require("express-session"); const sharedsession = require("express-socket.io-session"); const RedisStore = require('connect-redis')(expressSession); const MemoryStore = require('memorystore')(expressSession); const config = require('./config'); const winston = require('./app/log.js'); const app = express(); const secret = config.get("core.machinekey") + (new Date()).getTime(); const secretCookieParser = cookieParser(secret); const baseCookieParser = cookieParser(); winston.stream = { write: (message) => winston.info(message) }; const redis = { host: config.get("redis:host"), port: config.get("redis:port"), ttl: 3600 } let store; if(redis.host && redis.port){ store = new RedisStore(redis); } else { store = new MemoryStore(); } const session = expressSession({ store: store, secret: secret, resave: true, saveUninitialized: true, cookie: { path: '/', httpOnly: true, secure: false, maxAge: null }, cookieParser: secretCookieParser, name: "socketio.sid" }); app.set('port', config.get('port') || 3000); app.use(logger("dev", { "stream": winston.stream })); app.use(session); app.get('/', (req, res) => { res.send('