以前一直在听说如何判断用户是否在线这个话题,一直没得要领,今天特意向大家请教下!!谢谢各位!!

解决方案 »

  1.   

    把session记录到数据库,同时标示出用户的id号,判断用户是否在线就看这个id号对应的session信息是否过期。不知道我说的对不对,欢迎楼下各位大神拍砖。
      

  2.   


    请看楼下补充我在一楼说的就是用户不点退出按钮的情况呀。你自己要定一个时间区间,比如10分钟,超过10分钟没有更新活动时间的,你就当他不在线。
    我认为,不可能用户一关闭浏览器你就能知道他不在线的。
    除非你服务器足够牛逼,永远是用ajax刷新用户打开网页的时间,然后,超过一两秒ajax没刷新,就认为他已经关闭浏览器不在线。但是,这种是一种超级蛋疼的方法。纯讨论,继续拍砖。
      

  3.   


    请看楼下补充我在一楼说的就是用户不点退出按钮的情况呀。你自己要定一个时间区间,比如10分钟,超过10分钟没有更新活动时间的,你就当他不在线。
    我认为,不可能用户一关闭浏览器你就能知道他不在线的。
    除非你服务器足够牛逼,永远是用ajax刷新用户打开网页的时间,然后,超过一两秒ajax没刷新,就认为他已经关闭浏览器不在线。但是,这种是一种超级蛋疼的方法。纯讨论,继续拍砖。那么你怎么判断用户是否有活动呢?每隔一段时间请求下服务器?那这个请求不是要在每个页面里都要加吗
      

  4.   

    1、为什么要判断用户是否在线?
      既然用户不在线,那么他就不会向你发出请求。
      除非你有显示在线人数的需求
    2、什么时候判断用户是否在线?
      当你需要显示在线人数时,自然是至少有一个用户发出了请求
      只在响应该请求时统计在线人数即可
      如果没有任何人访问你的网站,即使统计了又有什么用?
    3、如何判断用户在线?
      无论是否注册用户,只需统计有效的 session 的个数就可以了
      如果你觉得默认的 session 失效期 1440 秒太长了,你可以按你的需要调整
      

  5.   


    这个逻辑是这样,不是请求,因为你的每一个页面都要去判断用户是否在线吧?每个页面都会去读取session信息的,在读取的时候更新这个时间。
      

  6.   

    可能有需要知道在线好友的需求,但是也是需要一个时间段的1、ajax定一个时间段发送到服务端,证明在线,超过则不在2、设定一个时间段内,用户未访问页面,发送请求,断开会话,同时知道不在线状态总之,不可能即时知道用户是否在线,一定需要一个合理的时间段的
      

  7.   

    这个要看你是如何记录登陆信息的,如果只是简单的session,只需要判断用户信息对应的session是否存在或者过期就行了,其他思路也都差不多了,反正都是个判断是否有效的问题!
      

  8.   


    这个逻辑是这样,不是请求,因为你的每一个页面都要去判断用户是否在线吧?每个页面都会去读取session信息的,在读取的时候更新这个时间。看楼下
      

  9.   


    对于用ajax异步请求这种的话,需要把那段代码加在每个页面里的吧?设定时间段看用户是否访问页面这里又怎么实现下?没想到。然后看下我说的那个再,谢谢
      

  10.   

    你可以使用一个内存表来更新用户的最后操作时间,然后使用Cron来定时执行清理用户的操作,这样表里的就是最近在线的用户。