nodejs session 设计

会话管理

{

    //保存会话

    _data : {},    

    /** 会话基本操作 ***/

    //查找会话

    getSession : function(id){},

    //创建会话

    createSession : function(){},

    //替换会话

    replaceSession : function(source,target){},

    //销毁会话

    destorySession : function(id){},

    //共享会话

    sharedSession : function(){},

    

    /** 会话处理器 ***/

    //初始化会话回收处理器

    initSessionGCProcessor : function(){},

    //初始化会话心跳检测处理器

    intiSessionHeartbeatProcessor : function(){},

    //推送消息处理器

    pushMessageProcessor : function(id){},

}

会话上下文

{

    //回收会话时间

    gcTime : 1000*60 *15,

    //心跳保持时间

    hbTime : 1000*2,

    //每个会话消息保存长度

    msgMaxLength : 50

}

会话对象

        var session = {

            id:'xx',

            state : 1, //会话状态

            lastTime : new Date(), //最后访问时间

            _attr :{}, //属性

            _msg : [], //保存推送消息

            getAllAttr : function(){ return this._attr; },

            getAttr : function(key){ return this._attr[key]; }, //获取属性

            removeAttr : function(key){ delete this._attr[key]; }, //删除属性

            setAttr : function(key,value){  this._attr[key] = value; return this; }, //设置属性

            write : function(msg){ this._msg.push(msg); },    //输入准备推送的消息

            getAndPushMsg : function(){ var result = this._msg; this._msg = []; return  result; }, //获取并且推送消息

            close : function(){ this.state = 0; }, //关闭会话

            destory : function(){ this.state = -1;}, //销毁会话

            replace : function(session){ this._attr = session.getAllAttr(); }, //替换会话

            refreshLastTime : function(){ this.lastTime = new Date(); }, //刷新最后访问时间

        };

 

你可能感兴趣的:(session)