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

在编聊天室时,处理用户断线是一个刺手的问题,特别是放到免费网站上,如果一味地靠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

 

但不要指望拿Application当数据库用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值