ASP

本类阅读TOP10

·asp常用数据库连接方法和技巧
·无组件生成BMP验证码
·一些常用的辅助代码 (网络收藏)
·JavaScript实现的数据表格:冻结列、调整列宽和客户端排序
·VisualStudio.NET_2003及其 MSDN 下载地址
·ASP模拟MVC模式编程
·图片以二进制流输出到网页
·MD5加密算法 ASP版
·ASP.NET编程中的十大技巧
·改进 ASP 的字符串处理性能

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
聊天室关键技术-用户断线处理

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

聊天室关键技术-用户断线处理  
  作者:杨过大侠
转自: www.ChinaAsp.com

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




相关文章

相关软件