聊天室关键技术[用户断线]处理

王朝other·作者佚名  2006-11-24
宽屏版  字体: |||超大  

在编聊天室时,处理用户断线是一个刺手的问题,特别是放到免费网站上,如果一味地靠global.asa,什么时候触发session_onend,application_onend,都是一个不确定的数字,在设计时,合理地安排会带来意想不到的好处。

那么有什么最简便办法处理用户断线呢?

笔者经过试验,有了以下的方法:

聊天室用N个application("user" & N)来保存用户名,再用application("TimeBegin")来保存每个用户的登录时间,同时,在用户登录时用session("TimerBegin")保存登录时间(timer),在发言区设定刷新时间为N秒,每次刷新将session("TimeBegin")的时间更新,同时判断timer - application("user"&session(userID)) 是否>N秒,如果是则说明该用户没有自动刷新,即意味着已经断线,即可将该application("user"&N)设为空值,再提示该用户已退出即可。

部分代码:

total = application("AllPeople")'聊天总人数

aryHuman = split(total,";")

for i = lbound(aryHuman) to ubound(aryHuman) - 1

if application("user" & i) = "online" then

if int(timer) - int(application("TimeBegin" & i)) > 120 then

application("user" & i) = ""

temp = aryHuman(i)

aryName = split(temp,",")

hrefname = aryName(0)

for j = lbound(aryHuman) to ubound(aryHuman) - 1

if application("user" & j) = "online" then

application("content" & j) = "<FONT color=#000000>【公告】"&hrefname&"</FONT>" &"<font color=#F08000

>"& "断线..." & "</font><font color = #000000 class=p9>" & " <" & time() & "></font><br>" & application

("content" & j)

end if

next

end if

end if

next

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有