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(); }, //刷新最后访问时间
        };

 

posted @ 2014-04-01 13:09  solq  阅读(1692)  评论(0编辑  收藏  举报