【急】聊天室-非正常退出后如何删除该用户???
最近研究一个聊天室,用户用application存放,非正常(不是单击【离开】)退出后,退出的用户怎样从application中删除啊?
2、用户有没有其他存放方式,退出问题如何解决?
欢迎指导...
问题点数:60、回复次数:12Top
1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-08-24 17:44:32 得分 8
这个只能通过超时来删除用户。。
一般也就是这么做的,因为http是无状态的连接。Top
2 楼dreamsky15(云飞扬)回复于 2005-08-24 17:47:39 得分 8
通过监听器SessionListener 和 ContextListener实现.
自己搜索一下资料啦Top
3 楼Shiro8558(行百里者半九十)回复于 2005-08-24 17:49:46 得分 0
通过超时来删除用户。。 这个我想到了
但 session("Name")=null 了 我怎么在application中找到此用户啊??
Top
4 楼108041217(josso)回复于 2005-08-24 17:52:52 得分 2
gzTop
5 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-08-24 17:58:15 得分 8
你需要把用户放在application里面啊。。Top
6 楼Shiro8558(行百里者半九十)回复于 2005-08-24 18:32:35 得分 0
Vector UserName=null;
UserName= (Vector)application.getAttribute("UserName"+chat_room_id);
if(UserName==null) {
UserName= new Vector(30,10);
}
if(regname!=null ) {
if(!UserName.contains(regname)){
UserName.addElement(regname);
}
session.putValue("Name", regname);
}
application.setAttribute("UserName"+chat_room_id,UserName);
这是将用户存入application代码
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
Vector UserName=null;
UserName= (Vector)application.getAttribute("UserName"+chat_room_id);
UserName.remove(session.getValue("Name"));
session.removeAttribute("Name");
session.removeAttribute("MessageIndex");
这是正常退出代码
Top
7 楼CAYU(中原)回复于 2005-08-24 18:40:38 得分 6
写个cache 也可以,超时的自动就删除了.
Top
8 楼topil(认认真真学习,塌塌实实工作)回复于 2005-08-25 09:17:38 得分 28
想到一个办法,可以在DB中的用户表中加一个字段,保存用户上次下线的状态:
0 :用户登陆后正常退出
1 :未正常退出
用户登录后,修改这个字段为1,在点离开后修改一下其标准为0,每次登录时判断一下这个标志位来得到上次是否是正常退出的。
Top
9 楼topil(认认真真学习,塌塌实实工作)回复于 2005-08-25 09:19:53 得分 0
楼主的这个功能是不是要处理之前被管理员踢出去的用户,一段时间内不能再上线阿?Top
10 楼Shiro8558(行百里者半九十)回复于 2005-08-25 09:34:30 得分 0
谢谢 topil 但不是这个意思
application 存放所有用户 某一用户非法退出(不是被踢出)后 如何从application中删除该用户?Top
11 楼Shiro8558(行百里者半九十)回复于 2005-08-26 09:54:24 得分 0
大家继续啊
最好能详细点
有点混乱 谢谢参与Top
12 楼Shiro8558(行百里者半九十)回复于 2005-09-07 19:21:18 得分 0
谢谢 topil 按照你的想法仔细考虑了一下 基本解决了
揭帖Top




