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(); }, //刷新最后访问时间
};
nodejs session 设计的更多相关文章
- Nodejs之使用session
nodejs中使用session的说明. session介绍 为什么使用session: session运行在服务器端,当客户端第一次访问服务器时,可以将客户的登陆信息保存. 当客户访问其他界面时,可 ...
- session机制详解以及session的相关应用
session是web开发里一个重要的概念,在大多数web应用里session都是被当做现成的东西,拿来就直接用,但是一些复杂的web应用里能拿来用的session已经满足不了实际的需求,当碰到这样的 ...
- 我们为什么要使用NodeJS
科普文一则,说说我对NodeJS(一种服务端JavaScript实现)的一些认识,以及我为什么会向后端工程师推荐NodeJS. "Node.js 是服务器端的 JavaScript 运行环境 ...
- $1200元 设计数据挖掘模型及对应RESTful Web Service
利用MongoDB和NodeJS/Java设计数据挖掘模型以及对应的RESTful Web Service.要求:1. 精通MongoDB集群的配置2. 精通MongoDB Sehll的使用3. 精通 ...
- 前端学PHP之Session
前面的话 Session技术和Cookie相似,都是用来储存使用者的相关资料.但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下.Sess ...
- 从Spring-Session源码看Session机制的实现细节
Re:从零开始的Spring Session(一) Re:从零开始的Spring Session(二) Re:从零开始的Spring Session(三) 去年我曾经写过几篇和 Spring Sess ...
- 前端学PHP之会话Session
前面的话 Session技术和Cookie相似,都是用来储存使用者的相关资料.但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下.Sess ...
- tornado 路由、模板语言、session
一:tornado路由系统: 1.面向资源编程: 场景:当我们给别人提供api的时候,往往提供url.比如:电影票api: http://movie.jd.com/book_ticket:预订电影票. ...
- 会话追踪(session tracking)
HTTP是一种无连接的协议,如果一个客户端只是单纯地请求一个文件(HTML或GIF),服务器端可以响应给客户端,并不需要知道一连串的请求是否来自于相同的客户端,而且也不需要担心客户端是否处在连接状态. ...
随机推荐
- Leetcode 491.递增子序列
递增子序列 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2. 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7] ...
- ZOJ 3362 Beer Problem(SPFA费用流应用)
Beer Problem Time Limit: 2 Seconds Memory Limit: 32768 KB Everyone knows that World Finals of A ...
- [openjudge6043]哆啦A梦的时光机
[openjudge6043]哆啦A梦的时光机 试题描述 哆啦A梦有一个神奇的道具:时光机.坐着它,大雄和他的伙伴们能穿越时空,回到过去或者去到未来. 有一天,大雄和他的伙伴们想穿越时空进行探险,可是 ...
- BZOJ 4590 [Shoi2015]自动刷题机 ——二分答案
二分答案水题. #include <cstdio> #include <cstring> #include <iostream> #include <algo ...
- Java众神之路(2)-标志符
标志符 1.1标志符:用来标志类名.变量名.方法名.类型名.文件名的有效字符序列成为标志符. 1.2命名规则: Java语言规定标志符由字母(a-zA-Z).下划线(_).美元符号($)和数字(0-9 ...
- java运行时间计算
long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTime = System. ...
- vue2+nodejs+mongodb搭建移动端网站
从零开始一步步搭建移动端网站,持续更新,github代码如下,因为放了视频文件,下载可能有点慢 https://github.com/lanleilin/myHomepage 前端采用Vue2+vue ...
- luogu 3407 散步
题目链接 题意 按从左到右的顺序给出数轴上的一群人,有人向左走,有人向右走,一旦两人相遇就会停在当前位置,后来走到该位置的人也会停在该位置.问经过一段时间这些人分别在什么位置. 思路 可以将这些人分为 ...
- python编程(python开发的三种运行模式)【转】
转自:http://blog.csdn.net/feixiaoxing/article/details/53980886 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 单循环 ...
- android中与Adapter相关的控件----ViewFlipper
ViewFlipper(翻转视图) 一.ViewFlipper是一个多页面管理的控件,与ViewPager不同,ViewPager的是一页一页的的,而ViewFlipper则是一层一层的.图片轮播或者 ...