如何检测会话是否已在node.js中过期

时间:2013-09-23 14:18:38

标签: javascript node.js session

我的网站有一个node.js实时聊天系统。默认情况下,用户的会话将在30秒内过期,除非他们调用某个功能让服务器知道他们仍然在线,服务器将延长他们的会话。

然而,我发现会话在过期后不会被删除。当我调用函数时:

Hub.prototype.find = function(username, fn) {
    for(var sid in this.sessions) {
        var session = this.sessions[sid],   //session still found even expired...
            sess_username = session.data('username');
        if(sess_username == username) {
            fn(session);
            return;
        }
    }
    fn(false);
};

现在即使会话过期,仍然可以找到“会话”。为什么?如何写入条件以便找不到任何过期的会话?

非常感谢!

1 个答案:

答案 0 :(得分:0)

确保您希望会话过期时使用req.session.destroy(),以便将其删除。

希望它有所帮助!