duanraa1984 2016-03-17 04:45
浏览 35

检查用户是否在线[关闭]

How to continuously check if a user is online (without reloading the page) using Ajax ? It happens sometimes that the user has opened his profile in two different tabs, and he logs out from one of the tab, so the other tab immediately should show the log in page...

  • 写回答

2条回答 默认 最新

  • dongzaliang4492 2016-03-17 05:10
    关注

    As for checking if the person is online , you can use many technologies like long polling , web socket and simplest one is periodically checking with the server running one script.

    For other part it can be done on the server side where you need to maintain some kind of in-memory map (if you have only one webserver otherwise you have to store in the db ) which contains the logged in user id and some random key generated by your client side code whenever some logs in

    Map<string,List<string>> tracker = new Map<string,List<string>>();
    

    whenever you log in just that the new random key to the tracker by finding his id in the map

    tracker[userId].Add(random);
    

    whenever user logs out from any place clear the tracker key

    tracker.remove(userId)
    

    Now as we are making periodic call from AJAX if the tracker map does not contain the userId it means he has logged out from some place.

    if(!tracker.Contains(userId))
         //user is logged out from some other place
    
    评论

报告相同问题?

悬赏问题

  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真
  • ¥15 任务A:大数据平台搭建(容器环境)怎么做呢?