些網友由於線路掉線,死機等原因,不能通過正常的途徑離開聊天室,造成在線人數不能正常顯示!解決的方法一般為
1 建立在線人數文件,裡面保存在線人的id/pass/time 其中time 為最後的更新時間
2 聊天程序正常運行時每隔一段時間更新自己的 id/pass/time 通知系統自己在線,一般可以為1-2分鐘
3 系統每格一段時間掃描一次在線人名單,查找那些已經超過規定時間(比如5分鐘)沒有更新的id,確認為已經異常離線
4 在線人數為文件裡的行數,名單為行數據
我的現在提供下載的聊天室就是采用這種方法實現的!
這種方法流程比較簡單,但在人多時的文件共享問題成為關鍵,本人通過實踐,發現一種消耗系統資源非常少,能很好解決共享的方法!
具體思路如下:
1 建立一個 useronline 子目錄存放在線人員數據
2 每個進入的人在裡面建立一個以用戶名為文件名的文件。內容為空!
3 聊天程序正常運行時,每隔一段時間更新自己的子目錄裡的文件
4 系統根據目錄裡文件更新的時間判斷用戶數否離線
5 在線人數為目錄裡的文件數,名單為文件名
優點:每個人之更新自己的文件,不影響其他人,不存在共享問題!
由於可以每隔5分鐘掃描一次,故消耗資源很少!