怎么判断用户在线还好是离线?

qq8461 2011-02-16 09:52:56
如果用户登录成功就更新他的状态为“在线”,如果session超时或用户直接关闭页面,那就要更新其状态为“离线”。
请问怎么实现呢?我想了好久也没想出来。。。。。请大家帮忙
...全文
311 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑道江湖情 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 qq8461 的回复:]
如果用户登录成功就更新他的状态为“在线”,如果session超时或用户直接关闭页面,那就要更新其状态为“离线”。
请问怎么实现呢?我想了好久也没想出来。。。。。请大家帮忙
[/Quote]
因为http是无状态的,这个问题不能完美实现。
cykb518 2011-02-16
  • 打赏
  • 举报
回复
用net里面的cache吧
qq8461 2011-02-16
  • 打赏
  • 举报
回复
流程我是懂,但是具体怎么实现不会。比如说session超时了,我想应该在Global.asax里session_end事件里更新其状态为“离线”,但是session_end事件里已经获取不到session了(我的用户登录信息都是放session的);如果直接关闭页面,那怎么更新状态呢?
小阳 2011-02-16
  • 打赏
  • 举报
回复
同意楼上的说法!
迷茫的凡人 2011-02-16
  • 打赏
  • 举报
回复
你可以在表中设一个状态字段,1表示在线0表示离线,在所有用户未登录时统一默认他们的状态为0,登录后就把当前登录者的设为1
  • 打赏
  • 举报
回复
无非是修改Session的值吧
你不是懂了吗
ltcszk 2011-02-16
  • 打赏
  • 举报
回复
登陆成功数据库里状态改为在线
注销和sessionend时改为离线
你都已经把流程说清楚了还有什么不懂的?
ycproc 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyq11 的回复:]
web程序是无状态的,只能等Session过期
Session退出时实现人数统计不准确。非法关机或关闭IE不会执行
要记录用户日志和操作时间,再用定时器刷新计算用户
已经有固定时间没有活动的用户,然后删除
[/Quote]
要么你用用户自己定义的状态
不过这样显得不够成熟和专业
wuyq11 2011-02-16
  • 打赏
  • 举报
回复
web程序是无状态的,只能等Session过期
Session退出时实现人数统计不准确。非法关机或关闭IE不会执行
要记录用户日志和操作时间,再用定时器刷新计算用户
已经有固定时间没有活动的用户,然后删除
baysos 2011-02-16
  • 打赏
  • 举报
回复
及时判断是否在线貌似有点困难,毕竟html是无状态的,只能判断session是否超时。
andrewsway 2011-02-16
  • 打赏
  • 举报
回复
服务器端需要有在线列表(数据库、application或者别的啥都可以),里面有用户信息,有上次通知时间,如果连续两次没有向服务器通知:【我还在线】,则认为已经离线
xbing888 2011-02-16
  • 打赏
  • 举报
回复
用ajax 定时向服务器验证状态,如果session失效,或页面关闭(无ajax请求) 则为离线

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧