当前位置: 首页 > 图文教程 > 网络编程 > ASP > 聊天室关键技术[用户断线]处理

ASP
ASP视频教程:后台页面加入限制访问和禁用缓存功能
ASP视频教程:制作网站前台首页
ASP视频教程:备份和还原SQL Server 2000数据库
ASP实例教程:asp无限级显示分类代码
IIS无法启动错误的几种情况汇总
asp Http_Referer,Server_Name和Http_Host
ASP 调用带参数输出的COM接口
隐藏修改文件时间和文件属性的ASP脚本
ASP Crazy 模版操作类(最简单的模板类、仅提供交流)
asp 动态数组 提供Add、Insert、Remove、RemoveAt、Search等方法。
asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数
asp 判断上传文件中是否存在危险代码
asp 获取url函数小结
ASP 调用dll及封装dll实例
asp 实现的冒泡排序程序
asp 自定义分段函数/求第N名成绩
ASP 高级模板引擎实现类
ASP 常见的连接字符串写法(access2007)
ASP向Excel导数据(图片)终结版 ASP操作Excel
ASP实现防止网站被采集代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 252 ::
收藏到网摘: n/a

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