用户状态确定问题

问题描述

我现在用struts编写一个论坛,但是在编写过程中遇到了如下问题: 用户状态的确定(是上线还是下线) 我现在是设置了一个按钮点击后就将数据库中对应的字段变成0(0表示下线,1表示上线) 但是如果用户是关闭阅览器就不能确定成功了,原想 设置 在session中一个值,然后定时进行检查,但是这种方法时间无法确定。如果用户刚下线,又想上线。还有用户换阅览器登录怎么办(ie换到火狐)问题补充定时确定的时间不好确定呀?问题补充我主要是说,如果js请求时间设定一个值,然而用户又在这个时间段内重新登录。这不就不出现问题了,用户登录不上。因为数据库保留的在线标志。问题补充qyhdt 写道

解决方案

可以做一个session监听,session创建的时候就将登陆信息存入在线表中,如果用户是正常退出的,如:点击注销,或者是logout,后退就将session销毁,然后再做一个session监听,销毁时将登陆信息删除。设置session 30分钟失效。这样用户在关了浏览器也在半个小时候就会session销毁。至于你说的两个浏览器同时登陆 ,我觉得这种东西 记录在线情况的是否得考虑,一个用户只能在一个地方登陆,例如QQ 第二个用户登录就会被挤掉。如果保证单用户登录的话,那么同时打开2个浏览器登录将后登录的用户存入,把前一个踢掉就OK 了注意了:浏览器都有一个毛病 火狐最明显,就是在一个talbe也中同时开2个也没访问服务器的话,这时候只有一个session。这里不是我们自己的问题。
解决方案二:
痛苦不忧伤 写道pxjin888 写道定时确定的时间不好确定呀?js一分钟请求一次,cookie半小时或者15分钟过期,根据自己的业务需求判断时效性。有什么用?依赖客户端的压根就不靠谱服务器压根就不知道浏览器的存在定时正常情况下可以解决问题但浏览器崩溃呢?断电呢?这类需求要么就不做(session本身有timeout)要么就在服务器端通过监听的方式做
解决方案三:
这种问题 解决方法很多的 登陆了的用户 修改状态在线 退出了修改状态离线关闭浏览器了 那没辙 只能等当前session销毁时做监听换浏览器就等于是新的客户端会话了 跟你开始的登陆 注销都不相关
解决方案四:
pxjin888 写道定时确定的时间不好确定呀?js一分钟请求一次,cookie半小时或者15分钟过期,根据自己的业务需求判断时效性。
解决方案五:
可以考虑用客户端js定时向服务器推送用户是否在线通知,服务器端收到消息,保存用户的cookie和设置cookie生命周期。并动态刷新在线用户列表。这样做的好处是,只要用户登录就能记录下来,用户在非正常退出(比如关闭浏览器时)也可以在cookie失效后 从用户在线列表中去除。不好之处是:js定时向服务端请求耗性能。

时间: 2024-09-20 15:27:35

用户状态确定问题的相关文章

用户状态维护

那什么是用户状态维护?作 者 : 青苹果工作室 本文点击次数:277 本文是编译稿件,原文出处:http://www.asptoday.com/articles/19990820.htm 如果你不多加小心,非常相似的情况会发生在web 应用程序上.所以,开发人员需要特别留意可 伸缩性和容错问题,在设计应用程序时应该能够适应未来的发展.维护用户状态是一个应用程序 可伸缩性和容错的组成部分,你在站点设计阶段所做的决定对于将来站点的成功至关重要. 不对某些类型的状态进行维护,一个web 应用程序是不能

程序员看淘宝,如何用Session保存用户状态

 网上购物已经成为现在生活不可缺少的一部分.我们上淘宝只是为了消费,今天换一个角度,用程序员的眼光看看淘宝. 如上图: 情况一:当打开一些和账户有关的网页,检测用户没有登录,系统自动会跳转到登录界面. 情况二:当检测到已经有用户登录,页面会自动跳转到目的页面. 问题:系统如何检测用户是否登录,如何保存用户的登录状态? 下面说说自己的理解:利用Session保存用户状态, 解决方案一:每个用户都有一个Session对象相对应,当用户想要跳转到任意跟账户有关的界面(已买到的宝贝页面),每个页面加载的

批量查询用户状态在线的问题?

问题描述 1.因为群或者聊天室人数的限制,导致我需要从群或者聊天室删除不在线的用户,但环信这边没有批量查询用户状态的接口,我想问一下这个事情有没有好的解决方案,因为单个查询用户接口,有ip每秒30次调用接口的限制,求解决,求方案. 解决方案 只有单个判断是否在线的,可以自己写循环,或者提升每秒30次的限制解决方案二:查询用户在线状态就只有rest  api 这个接口可以查询.http://docs.easemob.com/start/100serverintegration/20usersip每

web服务器C++,http协议.如何用session保存用户状态,前台是html js的

问题描述 web服务器C++,http协议.如何用session保存用户状态,前台是html js的 web服务器C++,http协议.如何用session保存用户状态,前台是html js的 .如题,最好详细一些 解决方案 把session信息保存在cookie中,前台直接发送过来. 解决方案二: 你说的C++是单独的程序吗?服务器端可以用Redis缓存session信息:

android SharedPreferences详解(android存储用户状态信息方法)

在andorid很多应用开发中都需要记录用户登录信息,使用静态变量手机关机用户状态清除,解决方法是使用SharedPreferences存储android用户信息. 一.SharedPreferences基础知识介绍 获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Activity对象的getPreferences()方法 两种方式的区别: 调用Context对象的getSharedPreferences(

位置服务类产品的用户状态和地点管理设想

一.用户状态 针对于旅行用户和普通用户来说,使用LBS产品的出发点有很大差别.普通用户希望用LBS产品来http://www.aliyun.com/zixun/aggregation/17696.html">记录生活足迹.找到周边信息,而旅行用户更希望看到一些游记.攻略之类的.那么如果这些信息都混杂在一起的话,会导致内容冗杂,不好区隔. 针对这个问题,我们从两个地方可以得到一些启发,第一点启发是红绿灯 我们可以给用户预设三种状态: 红灯--宅黄灯--上班上学,三点一线绿灯--旅行中 第二点

【用户状态】详细解读Oracle用户ACCOUNT_STATUS的九种状态

DBA_USERS视图中ACCOUNT_STATUS记录的用户的当前状态,一般情况下在使用的正常用户均处于OPEN状态.例如我们查看sec用户的当前状态,此时该用户处于OPEN状态,可以正常使用.sys@ora10g> select username, account_status from dba_users where username = 'SEC'; USERNAME                       ACCOUNT_STATUS------------------------

Html保持用户状态的多种方法比较

比较     众所周知,html的一个缺点是本身无法保持状态,客户连接服务器获取一个页面后,对服务器而言,此连接就已不存在了,下一页将重新连接.互联网上网站建立以后,一个普遍的需求是能够方便的管理上站用户的帐号信息,以及某些页面针对限定用户开放.如何跟踪用户,目前常用的有以下解决方案: * 在html的表单中利用隐藏输入域来传递信息,如: VALUE值即为状态信息,所以每次不同,不可能事先写好,只能通过CGI程序生成HTML页面: Print " 这样,在下次表单重新提交时可以包含进去. 使用隐

ASP.NET保持用户状态的九种选择(上)

asp.net 摘要:ASP.NET为保持用户请求之间的数据提供了多种不同的途径.你可以使用Application对象.cookie.hidden fields.Sessions或Cache对象,以及它们的大量的方法.决定什么时候使用它们有时很困难.本文将介绍了上述的技术,给出了什么时候使用它们的一些指导.尽管这些技术中有些在传统ASP中已经存在,但是有了.NET框架组件后该在什么时候使用它们发生了变化.为了在ASP.NET中保持数据,你需要调整从先前的ASP中处理状态中学习到的知识. 随着We