如何准确判断用户离线,高手请进!!!

yubo_725 2013-03-19 10:42:08
我在做一个跨平台的移动应用,用到的技术是html5+css3+js,需要实现一个聊天的功能,如何判断用户的离线呢,在线很好解决,但是用户离线的方式有很多种啊,如果按程序步骤退出,可以在代码中判断用户的离线,如果是非正常的关闭应用呢,比如强行直接关闭应用,或者应用在后台被系统回收了,这又该怎么判断用户离线了呢,求高手思路,要能实时判断用户离线的方法,不要隔很长时间才判断出用户已经离线了。
...全文
435 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bichir 2013-03-20
  • 打赏
  • 举报
回复
WEB系统只要么等SESSION过期,要么像3楼所说那样,每隔时间进行请求。b/s是无状态的,TCP SOCKET你想多了
yubo_725 2013-03-20
  • 打赏
  • 举报
回复
引用 4 楼 aliujunjuna 的回复:
是否可根据socket编程,进行解决
我也是这么想的,可不可以在用户登录后,在客户端与服务器之间建立一个TCP socket,然后当socket断开连接的时候就当做离线,不过不知道怎么实现啊,求思路
Waitforsniping 2013-03-20
  • 打赏
  • 举报
回复
#F3和#F5说的差不多,就是这个意思。 每隔一段时间服务器向客户端(可以反过来)发送一条消息(一个小点的数据包,都行),客户端收到之后返回一条消息,如果规定时间没有返回,视作掉线。
xiesisi3 2013-03-20
  • 打赏
  • 举报
回复
就跟腾讯QQ一样的 如果你这边的QQ非正常关闭 那么相当长一段时间内你的好友那边的显示其实你是在线的。 还有就是如果有朋友给你留言并离线了,你上线后看到留言时你朋友的状态在一段时间内也是显示在线的(其实已经离线了)
suciver 2013-03-20
  • 打赏
  • 举报
回复
此题b/s无解只能靠c/s解决
yubo_725 2013-03-20
  • 打赏
  • 举报
回复
感谢各位高手的指点,b/s架构的解决方法按大家说的,用ajax+js已经实现了,但是如果是c/s架构的,这个问题该怎么办呢?
shine333 2013-03-19
  • 打赏
  • 举报
回复
这个自己衡量: 如3F所言,每N秒,客户端自己向服务器报个到。超过M秒(M>N,比如M=5N)还没报道的,视作下线。 当你的N取的越小,越精确,同时服务器甚至是客户端自身压力也越大
李涛_ncepu 2013-03-19
  • 打赏
  • 举报
回复
是否可根据socket编程,进行解决
  • 打赏
  • 举报
回复
客户每隔一段时间几秒或几分钟通过ajax把自己的标示发向服务器报到一下自己在线,服务器判断超过一定时间没报到的客户端为离线状态。这个在客户并发上千的情况极其消耗资源,就不大好用了。
  • 打赏
  • 举报
回复
或者用户主动点击退出按钮
  • 打赏
  • 举报
回复
此问题无解 乖乖地等session过期

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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