// Requires
global.config = require("./config.js");
var express = require("express");
var session = require("express-session");
global.sha1 = require("sha1");
global.moment = require("moment");
var rhandler = require("./handler.js");
global.mySQL = require("./mysql.js");
var entities = new require("html-entities").XmlEntities;
global.Users = {};
var app = express();
var server = require("http").createServer(app).listen(config.server.port);
global.Handler = new rhandler();
app.set("view engine", "ejs");
app.use("/assets", express.static("public"));
var socketIO = require("socket.io");
var io = socketIO.listen(server);
var session = require("express-session")({
secret: config.express.secret,
resave: true,
saveUninitialized: true
});
var sharedsession = require("express-socket.io-session");
// Use express-session middleware for express
app.use(session);
// Use shared session middleware for socket.io
// setting autoSave:true
io.use(sharedsession(session, {
autoSave:true
}));
io.sockets.on("connection", function(socket) {
socket.on("login", function(obj, callback) {
socket.handshake.session.test = "test";
});
});
app.get("/", function(req, res) {
console.log(req.session.test);
res.end();
});
이 대답에 내 의견을 만들기.
문서에 따르면 socket.handshake.foo
이 아닌 socket.handshake.session.foo
에 액세스해야합니다.
세션 수정을 유지하기 위해 세션을 수정 한 후에 socket.handshake.session.save()
을 추가해야합니다.
doc에 따르면, 당신은'socket.handshake.foo'가 아니라'socket.handshake.session.foo'에 접근해야합니다. – jfriend00
사실 사실, 나는 내 주제에 만족하지 못했다. 그러나 이것과 같은 문제 –
과거에 이것을 시도했을 때 수정을 유지하려면'session.save()'가 필요했습니다. – jfriend00