我来说说吧。
如果你会用Delphi写HTTPD例程,这个问题其实相当简单,我前段时间见过一个叫非非聊天室的软件,做得相当可以。
用ASP也可以实现,不过具体的逻辑控制比较复杂,一定要细致。
用户登陆网站、离开网站你是很容易监测的,这两个就不说了吧,我们主要看怎么检查用户突然掉线。
我们假释建立一个在线名单的数据库表,里面至少有一个用户标识作为主键,然后有登录时间、离开
时间、最后一次同步时间三个必要字段。用户登录的程序要在这个表里面插入记录,初始化时登录时
间为登录时系统时间,最后一次同步时间和登录时间相同,离开时间为空表示没有离开(在线)。用
户注销程序把注销时间填到这个表里面,表示此用户正常离开(使用程序的注销功能)。用户在使用
程序时,必须要有一个隐含页面不断刷新,刷新所调用的程序就不断把刷新时间填到表的最后一次同
步字段。最后你的检查异常退出(掉线)的程序所做的事情,就是不断的检查这个表,看没有离开的
用户中,哪些人的最后一次同步时间与当前系统时间相差太大(你自己定义这个标准),程序就把这
些人作为掉线处理,处理后还需要把处理时间填到离开时间里面,作为异常退出,下次循环就不在检
查它。当然可以在正常退出、异常退出的时间删除记录。
道理就是这样了,如果你以前考试的画面是ks.asp,我们做的刷新页面是fresh.asp,那么你的index
文件就这样写:
<html>
<frameset rows="0,*" frameborder=0>
<frame src="fresh.asp" scrolling="no" noresize marginheight=0>
<frame src="ks.asp" noresize marginheight=0>
</frameset>
</html>