none
怎么实现像webQQ那样,登录同样账号,后面登录能把前面登录给挤掉 RRS feed

答案

  • 呵呵,这个功能点按照常规的做法确实比较麻烦,个人经验,要处理这个功能主要得依靠服务器端去完成。

    一方面要实现以当前登录的用户为最新登录用户。另一方面要将当前登录前的登录挤下线,或者说叫踢下线。

    这涉及到了一个服务器端和客户端的长连接的问题,以及客户端像客户端推数据(告知先前登录的链接,当前账户已在其他地方登录,前行将此链接断开--下线)的问题。

     

    常规的做法是不能保持长连接的,建议采用RTMP协议方式去实现,在.net上可以采用开源的RTMP服务器Fluorinefx,源于Adobe的Flash Media Server开发而来。

    Fluronefx是支持Flex,Flash, Ajax ,Silverlight的,有关flex于fluorinefx的通信可参考我的博客的系列文章:http://www.cnblogs.com/beniao/archive/2009/06/14/1502810.html


    BLOG:http://beniao.cnblogs.com MSN:beniao@live.cn
    2010年4月26日 13:50

全部回复

  • 你好!

    每次登陆分别往 Application 与 Session 中存一个值。比如:

    Guid value =  Guid.NewGuid();

    Application["你的登陆名"] = value ;

    Session["你的登陆名"] = value;

    若有多个帐号同时登陆,那么只有最后一个帐号上述两个值是相等的。

    基于这样的情况,你在客户端使用一个 Timer 每隔一定时间去判断上面两个条件是否相等,若不相等则主动注销。

     

     


    知识改变命运,奋斗成就人生!
    2010年4月14日 1:58
    版主
  • 你好!

    每次登陆分别往 Application 与 Session 中存一个值。比如:

    Guid value =  Guid.NewGuid();

    Application["你的登陆名"] = value ;

    Session["你的登陆名"] = value;

    若有多个帐号同时登陆,那么只有最后一个帐号上述两个值是相等的。

    基于这样的情况,你在客户端使用一个 Timer 每隔一定时间去判断上面两个条件是否相等,若不相等则主动注销。

     

     


    知识改变命运,奋斗成就人生!

    如果不用timer去定时刷的话,也可以在初始化页面的时候去判断一下这2个值是否相同,不相等,就clear掉这个session,弹出提示信息就可以了。
    2010年4月14日 6:46
  • 那就不能实现挤掉那个已经登录的用户撒
    2010年4月15日 10:34
  • 不行啊楼主
    2010年4月25日 7:02
  • 貌似不容易做,当一个QQ号登录后,会在Application保存当前用户的号码,它所在的线程比如为:线程1

    当同一个QQ号再次登录时,在IIS里面会产生另一个线程(IIS是多线程的),比如为:线程2,

    这就要求IIS里面的线程2把线程1的Session清空,一个线程要处理另一个线程可能就不容易做了!

    反正我是这么理解的,不知道理解对不对,请高手指点!

    2010年4月25日 9:14
  • 呵呵,这个功能点按照常规的做法确实比较麻烦,个人经验,要处理这个功能主要得依靠服务器端去完成。

    一方面要实现以当前登录的用户为最新登录用户。另一方面要将当前登录前的登录挤下线,或者说叫踢下线。

    这涉及到了一个服务器端和客户端的长连接的问题,以及客户端像客户端推数据(告知先前登录的链接,当前账户已在其他地方登录,前行将此链接断开--下线)的问题。

     

    常规的做法是不能保持长连接的,建议采用RTMP协议方式去实现,在.net上可以采用开源的RTMP服务器Fluorinefx,源于Adobe的Flash Media Server开发而来。

    Fluronefx是支持Flex,Flash, Ajax ,Silverlight的,有关flex于fluorinefx的通信可参考我的博客的系列文章:http://www.cnblogs.com/beniao/archive/2009/06/14/1502810.html


    BLOG:http://beniao.cnblogs.com MSN:beniao@live.cn
    2010年4月26日 13:50