在BBS中想实现这样一个功能:能够显示出当前BBS中在线的用户。(不是显示当前在线人数,而是显示)
当用户登陆后,将此用户的状态改为在线。当此用户注销后,将此用户的状态改为离线。但当用户没有注销而是直接将网页关闭时,应如何得到此用户并将他的状态改为离线。(此时无法使用Session_End事件,因为此事件触发时所有请求已销毁,连Cookie也无法获取。)

解决方案 »

  1.   

    定时遍历用户列表中的人是否在线或者把Session过期时间设置短一点,要特别精确很麻烦,也没那个必要。
      

  2.   

    使用Session_End是比较好的方法,因为在一个Sesson超时时,一定会触发Session_End事件,虽然Session_End事件有可能在用户关闭浏览器一段时间后才执行,但是它总是能执行。
    再用写数据库或者静态变量储存在线信息,当Session_Start时添加一个在线用户,Session_End时删除相应的在线用户,这样是我目前接触到的最好的解决方法了。虽然也不能实时准确的显示,但是不会太离谱吧...