2013-10-05 4 views
1

Я пытаюсь следующий код, который я собрал из интернетсеансу данные в nodejs выразить socket.io

var io = require('socket.io'), 
express = require('express'), 
app = express(), 
server = require('http').createServer(app), 
connect = require('express/node_modules/connect'); 

var RedisStore = require("connect-redis")(express); 
var sessionStore = new RedisStore() 

var sessionSecret = 'sexret'; 
var sessionKey = 'sexpress.sid'; 
var sioCookieParser = express.cookieParser(sessionSecret); 

app.configure(function() { 
    app.use(connect.cookieParser()); 
    app.use(connect.session({ store: sessionStore, secret: sessionSecret, key: sessionKey })); 
    app.use(express.static(__dirname + '/public')); 
}); 

var sio = io.listen(server); 

sio.set('authorization', function(data, accept) { 
    sioCookieParser(data, {}, function(err) { 
     if (err) { 
     accept(err, false); 
     } else { 
     sessionStore.get(data.signedCookies[sessionKey], function(err, session) { 
      if (err || !session) { 
       accept('Session error', false); 
      } else { 
       // I'm trying to set data in to the session 

       if (session.yyy) { 
        session.yyy += 1; 
       } else { 
        session.yyy = 0; 
       } 

       console.log("%j", session); 

       // But it never set 

       data.session = session; 
       data.sessionId = data.signedCookies[sessionKey]; 
       accept(null, true); 
      } 
     }); 
     } 
    }); 
}); 

server.listen(1337); 

Я также попытался это, но он не работает, как хорошо,

sessionStore.get(data.signedCookies[sessionKey], function(err, session) { 
    if (err || !session) { 
    accept('Session error', false); 
    } else { 

    if (session.yyy) { 
     session.yyy += 1; 
    } else { 
     session.yyy = 0; 
    } 

    console.log("%j", session); 

    sessionStore.set(data.signedCookies[sessionKey], session, function(err, session) { 

     data.session = session; 
     data.sessionId = data.signedCookies[sessionKey]; 
     accept(null, true); 

    }); 
    } 

});

Как я могу установить данные в сеанс?

+0

ли у найти решение для этого? –

+0

да, приведенный выше код почти работает, это просто какая-то глупая опечатка, которую я не помню – romerun

ответ

Смежные вопросы