Согласно документации, обычный способ реализации express-socket.io-session :
var app = require('express')(),
server = require("http").createServer(app),
io = require("socket.io")(server),
session = require("express-session")({
secret: "my-secret",
resave: true,
saveUninitialized: true
}),
sharedsession = require("express-socket.io-session");
// Attach session
app.use(session);
// Share session with io sockets
io.use(sharedsession(session));
И обычный способ реализации connect-mongostore is:
var express = require('express');
var session = require('express-session');
var MongoStore = require('connect-mongostore')(session);
var app = express();
app.use(session({
secret: 'my secret',
store: new MongoStore({'db': 'sessions'})
}));
Если я хочу использовать сеансы Socket, мне нужно настроить сеанс Express непосредственно в инициализации переменной, а не в промежуточном программном обеспечениив противном случае я получаю предупреждения вроде:
express-session deprecated undefined resave option; provide resave option app.js:62:9
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option app.js:62:9
express-session deprecated req.secret; provide secret option app.js:62:9
Однако я не могу реализовать MongoStore в тот момент, так как сама переменная сеанса должна быть передана при инициализации объекта MongoStore.
Любая идея, как я могу использовать express-session , express-socket.io-session и connect-mongostore в одном приложении?