node.js와 express, socket.io를 사용합니다. Express에서 세션을 사용합니다.Node.js - express - session
어떻게 세션을 읽고 socket.io에서 그와 함께 작업 할 수 있습니까?
store.userid는 정의되지 않았습니다. 변수 가게에서
var express = require('express')
, stylus = require('stylus')
, nib = require('nib')
, sio = require('socket.io')
, ejs = require('ejs');
store = new express.session.MemoryStore;
app.configure(function() {
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: 'secret', store: store }))
app.use(stylus.middleware({ src: __dirname + '/public', compile: compile }))
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname);
app.set('view engine', 'ejs');
//disable layout
app.set("view options", {layout: false});
});
app.get('/', function(req, res) {
req.session.userid = Math.floor(Math.random()*5000);
});
var io = sio.listen(app)
, nicknames = {};
io.configure(function() {
io.set('transports', ['websocket','flashsocket','xhr-polling']);
});
io.sockets.on('connection', function (socket) {
socket.emit('hello', { hello: store.userid }); //store.userid is undefined
});
:
저장 =
{ sessions: { 'DNHIsZqgk53zbK3xg8qescJK.dUbdgfVq0D70UaLTMGTzO4yx5vVJral2zIhVsfFGnBA': '{"lastAccess":1326317111111,"cookie":{"originalMaxAge":14399999,"expires":"2012-01-12T01:28:17.266Z",
"httpOnly":true,"path":"/"},"userid":3528}' },
hash: [Function],
generate: [Function] }
클라이언트 측 쿠키에서 사용할 수 있습니다 - 안전한 해결책입니까? 클라이언트 측에서 쿠키 세션 ID를 저장 하시겠습니까? – Jenan
이 튜토리얼은 훌륭합니다 - http://www.danielbaulig.de/socket-ioexpress/ - 해결. – Jenan