通过socket.io更新快速会话

时间:2015-05-04 15:52:45

标签: node.js sockets session express

我有一个使用带有会话系统的快速框架的Node.js服务器。该程序是一个简单的1vs1游戏。为了玩,用户可以创建房间,而其他用户可以加入它以便游戏可以开始。房间ID存储在用户的会话中。

如果您查看以下代码,您将看到我如何设法在"套接字代码中访问快速会话"。这很棒,很有效。但是,我无法修改会话对象中的值。

var express = require('express');
var session = require('express-session');
var sessionMiddleware = session({
    secret: 'my secret',
    resave: false,
    saveUninitialized: false
});

var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

app.use(sessionMiddleware);

io.use(function(socket, next) {
    sessionMiddleware(socket.request, socket.request.res, next);
});

io.on('connection', function(socket) {
    // some stuff

    socket.on('disconnect', function() {
        socket.request.session.room = undefined; // this is not working
    });
});

server.listen(8080);

有没有办法做我想做的事情,还是应该重新考虑房间的管理方式?

谢谢

0 个答案:

没有答案