ASP.NET MVC5+EF6+EasyUI 后台管理系統(39)-在線人數統計探討


系列目錄

基於web的網站在線統計一直處於不是很精准的狀態!基本上沒有一種方法可以確實的統計在線用戶!

Discuz!NT 在線用戶功能算是做得比較好的!參考資料

他的原理大致是根據用戶的操作間隔來確定用戶是否在線,也可以理解為操作日志,當系統掃描的日志間隔太長將被理解為用戶離線,所以要不斷的更新操作表和操作表日益增長的煩惱,所以必須定時的清除操作表,當系統啟動時要重置表數據!

想到MVC的自帶過濾器,在執行方法的前或后對其記錄操作!比Discuz!NT的操作可能來得簡易了,雖然思想是一樣的!

我個人認為在普通網站中用系統自帶的session和applocation對象統計在線人數是很不精准的。用戶的不退出用戶而關閉網站導致session的20分鍾緩沖導致在線表不准確,但在系統中又有另一種想法了,因為系統通常在於一個頁面的大框架中,用戶對不安全退出而關閉系統的行為可以用js來監聽,並通過ajax更新用戶在線人數,應該是可行的!

我准備考慮用這種方式來做在線人數,用Applocaition存放在線人數,和在線列表。當頁面關閉的時候更新在線人數和在線列表,但又考慮多個系統頁面共存時候的顧慮!

我不知道大家現在是如何統計在線人數和在線列表的!

但通常的方法已經很明確,想要精准的統計必須付出更多的性能消耗!

下一節:在線用戶的精准統計實現,利用MVC過濾器+緩存實現,我考慮把用戶列表存在緩存中,對緩存進行用戶的增刪改。利用過濾器記錄和操作緩存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM