怎样实现如下效果,用什么方法?
条件:用户A已经在IP为218.66.12.61的机器上登陆了,后又在IP为218.102.19.53的机器上登陆。
实现:服务器向ip为218.66.12.61的客户机发送消息"用户a在其他地区登陆,被迫下线!"
其实就像QQ在机器a上以登陆后又在机器b上登陆,机器a上提示被迫下线的功能!

解决方案 »

  1.   

    用ajax去做,做一个定时轮询,判断用户登录最新时间戳A,用A与自己登录时候的时间戳B做比较,如果A>B,那么说明该用户已经在其他地方登录了,那么将强制B退出
      

  2.   

    用户登陆时已经记录在session中,并且可以获得到客户机的ip地址
    问题是服务器如何发送消息到指定客户机上
      

  3.   

    我写下我的想法
    不知道对不对
    正好和大家讨论一下function jiance() {
      setTimeout(chongfudenglu, 1000);
    }
    function chongfudenglu() {
      xmlHTTP获得服务器响应
      if(在其他地方登陆) {
        alert("用户在其他地方登陆,您被迫下线!");
        清空session 关闭window
      }else {
        setTimeout(chongfudenglu, 1000);
      }
    }
    <body onload="jiance();">
      

  4.   

    我以前做的时候,是用ajax判断的。servlet中:
    用户登录时,把用户名保存在session里面,再把他的session保存在servletContext里面,每次有人登录时验证是否已有这个用户,有的话把之前session中的用户名remove掉,并且session.setAttribute("kickedFlag","kicked");。jsp中:
    ajax判断session中的kickedFlag值,如果为"kicked",alert一个窗口告知被强制下线,并且将kickedFlag值清空。
    如果需要服务器向指定的客户端发消息,那可能要用到socket,这个我不太熟,期待达人来解决。