我有一个带有socket.io的node.js服务器,如下所示:
var port = process.env.PORT || 1337;
var server = require('http').createServer().listen( port );
var io = require('socket.io').listen( server );
var user = require('./p/a/t/h/user');
io.sockets.on('connection', function( socket ){
socket.on('login', function( data ){
user.login( data, function ( err, res ) {
});
});
});
并且id喜欢使用某种识别登录用户的会话系统(我选择this一个)。
所以我的user
模块看起来像这样:
var session = require('node-session');
session = new session({secret: 'secret-string','driver': 'file','files': process.cwd() + '/sessions','lifetime': 3600000,'expireOnClose': false});
module.exports = {
login: function ( data, callback ) {
session.sessionStart( ); // ??
}
};
如何在此处启动会话和/或从会话存储中获取相关会话数据?
答案 0 :(得分:1)
找到了一个有效的解决方案。
var port = process.env.PORT || 1337;
var server = require('http').createServer().listen( port );
var io = require('socket.io').listen( server );
var user = require('./p/a/t/h/user');
io.sockets.on('connection', function( socket ){
socket.on('login', function( data ){
user.login( socket, data, function ( err, res ) {
});
});
});
并在user.js中:
var session = require('node-session');
session = new session({secret: 'secret-string'});
module.exports = {
login: function ( socket, data, callback ) {
session.startSession( socket.request, socket.request.res, function() {
user.session = socket.request.session;
});
}
};
希望它对某人有所帮助。