2017-11-28 4 views
0

Ich habe einen node.js Server mit socket.io wie folgt aus:Wie Sitzung mit Knoten-Sitzung starten

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) { 

     }); 
    }); 
}); 

und id wie eine Art Session-System haben, die für angemeldete Benutzer erkennen (i wählen this eins). Also mein user Modul in etwa so aussehen:

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(); // ?? 
    } 
}; 

Wie eine Sitzung hier starten und/oder die zugehörigen Sitzungsdaten aus dem Sitzungsspeicher erhalten?

Antwort

1

Eine funktionierende Lösung gefunden.

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) { 

      }); 
    }); 
}); 

und in 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; 

    }); 
} 

};

Ich hoffe, es ist hilfreich für jemanden.

Verwandte Themen