明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

聊天室關(guān)鍵技術(shù)[用戶斷線]處理

[摘要]在編聊天室時(shí),處理用戶斷線是一個(gè)刺手的問題,特別是放到免費(fèi)網(wǎng)站上,如果一味地靠global.asa,什么時(shí)候觸發(fā)session_onend,application_onend,都是一個(gè)不確定的數(shù)字,...
在編聊天室時(shí),處理用戶斷線是一個(gè)刺手的問題,特別是放到免費(fèi)網(wǎng)站上,如果一味地靠global.asa,什么時(shí)候觸發(fā)session_onend,application_onend,都是一個(gè)不確定的數(shù)字,在設(shè)計(jì)時(shí),合理地安排會(huì)帶來意想不到的好處。
    那么有什么最簡(jiǎn)便辦法處理用戶斷線呢?
    筆者經(jīng)過試驗(yàn),有了以下的方法:
    聊天室用N個(gè)application("user" & N)來保存用戶名,再用application("TimeBegin")來保存每個(gè)用戶的登錄時(shí)間,同時(shí),在用戶登錄時(shí)用session("TimerBegin")保存登錄時(shí)間(timer),在發(fā)言區(qū)設(shè)定刷新時(shí)間為N秒,每次刷新將session("TimeBegin")的時(shí)間更新,同時(shí)判斷timer - application("user"&session(userID)) 是否>N秒,如果是則說明該用戶沒有自動(dòng)刷新,即意味著已經(jīng)斷線,即可將該application("user"&N)設(shè)為空值,再提示該用戶已退出即可。
        部分代碼:
    total = application("AllPeople")'聊天總?cè)藬?shù)
    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