还有客服人员的退出问题?因为如果用户不是正常退出,比如系统死机,或者掉电,
甚至客服人员机器掉电,那客服人员会一直显示在线请问有那些关键技术呢?
我是用XML跟服务器通信的,大家多支持,系统开发出来我开源的。请大家多帮忙。

解决方案 »

  1.   

    我现在是用application来保存用户在线状态和聊天内容的,大家有什么看法?
      

  2.   

    我也用application保存过数据,我是把一个DateSet放在application里面,没出什么问题。但我也不清楚这样合不合适。
      

  3.   

    因为这个问题确实难以回答.经常有人在问类似的问题,但从来就没有真正合适的解决办法.要解决这个问题,必须依赖于SESSION,但SESSION本身有一个很不好的现象,就是在用户退出之后,它并不能实时的反映出来,而是会在1-20分钟之内的任意一个时刻,才会消失,这就造成了数据的延时.并且,万一用户断电或意外关机等,也会造成错误.所以,我们必须结合SESSION,并采取其他的技术保证措施来实现这一点.
    建立一个表:
    ID 用户ID 上次活动时间同时,在每个页面(如果是框架页面的话,应放在TOP页面)里面,以XMLHTTP的方式,结合脚本setTimeout,定时以无刷新的方式向服务器请求更新上述的用户活动表,随时更新"上次活动时间".这个时间可设置短一点,比如:1分钟在需要查看当前在线用户时(即有刷新动作),则将上述表中,"上次活动时间"距现在超过1分钟的,全部认定已经断线.如此,可保证人员的进入和退出时间判断的实时性,不会超过1分钟.
    同样,对于意外关机或死机类的用户,由于该用户的上次活动时间无法进行更新,自然也会被判定为断开用户.如果想再进一步提高精确性,你还可以在后台利用Timer控件开辟一个新进程,实时监视用户活动表内的记录情况(因为是单一的进行活动,时间可设置更短,比如3秒钟一次)
      

  4.   

    俺的方式是建一个  hashtable 用以存放在线用户
    存放在Application中页面都是显示在一个大的框架集内 用户退出时 在框架的onunload事件里发送xmlhttp请求 删除hashtable中相应的用户