我想在加載頁面時在用戶的瀏覽器中存儲cookie。然後,使用AJAX,統計具有該cookie的用戶數量,並每隔1秒左右將其發送到數據庫行。這是如何完成的?PHP會話管理,用Cookie計數用戶
回答
由於這聽起來像是你正在實現一個聊天室,所以假設有一些AJAXy輪詢正在進行(客戶端正在非常頻繁地檢查更新)是安全的。
一種方法可能是將active_sessions表保存在數據庫中。這可能是這樣的:
create table active_sessions (
sess_id varchar(32) primary key,
lastseen timestamp
);
每當客戶端請求的更新,插入/更新行對他們的會話ID,然後定期用更久的時間戳刪除任何記錄的是T(對於T的一些價值比如30秒或者其他東西)
對錶中的行進行計數,以便很好地估計有多少客戶端仍處於活動狀態。
當然,如果你有memcache或APC或類似的東西,你最好將活動會話列表保存在某個內存緩存中,這樣每次客戶端請求更新時都不會對數據庫運行更新。 – timdev 2010-06-10 22:52:39
用戶計數器將被實現到AJAX腳本中以實時更新,因此計數器始終是準確的。當前計數器在加入時添加一個條目,並在退出時刪除它(但只有在它們單擊按鈕時纔會刪除)。是否有一種方法可以完全重寫系統,以便檢測使用Cookie的用戶數量,或者在沒有實際點擊按鈕的情況下刷新計數器(會話數據庫)的方式(如果這是有意義的)。 – Nik 2010-06-10 22:57:58
另外,關於你的帖子,我們如何更新時間戳以防止AFK用戶仍然在房間中被計數。 – Nik 2010-06-10 22:59:53
你如何考慮離開聊天室的用戶。我有這個問題的解決方案,但它不能解決用戶離開,除非他們實際上點擊按鈕離開,而大多數用戶則不會。編輯:我看着你的文章,它並沒有解決我在這裏試圖解決的問題。 – Nik 2010-06-10 22:44:36
- 1. 用戶會話管理
- 2. 護照會話管理禁用cookie時
- 3. 管理會話時broswer有禁用cookie
- 4. Android ksoap2會話cookie管理
- 5. session_id,cookie,會話管理
- 6. 使用angular.js管理用戶登錄中的會話和cookie
- 7. asp.net中的用戶管理而不使用cookie或會話
- 8. PHP會話。管理員如何銷燬用戶的會話
- 9. PHP會話(用戶/管理員)的用戶級別
- 10. 用會話php創建cookie?
- 11. 使用PHP會話ID,cookie +數據庫跟蹤用戶
- 12. 用Cocoa Touch管理用戶的PHP會話
- 13. 用戶可以訪問管理頁面使用會話在php
- 14. 管理長期用戶會話
- 15. 如何管理用戶認證/會話?
- 16. 管理員終止用戶會話
- 17. Facebook如何管理用戶會話?
- 18. 使用PHP $ _COOKIE管理會話變量
- 19. Apache JMeter中的會話/ cookie管理
- 20. Passport.js沒有cookie的會話管理
- 21. PHP Cookie管理
- 22. PHP用戶會話
- 23. 從管理會話中終止ASP .NET用戶會話
- 24. 會話或Cookie [PHP]
- 25. PHP會話cookie sessionid
- 26. PHP cookie和會話
- 27. PHP會話和cookie
- 28. 如果cookie被禁用,php會自動處理會話嗎?
- 29. 處理兩個PHP會話cookie?
- 30. 會話處理程序中的PHP cookie
你的問題有點不清楚。你想保持在任何特定時間有多少用戶會話處於活動狀態? – timdev 2010-06-10 22:37:50
用例/例子會很有幫助。這個問題現在並沒有意義。 – user358390 2010-06-10 22:38:31
AJAX聊天,計算當前在一個房間裏的用戶。是的,活動會話。 – Nik 2010-06-10 22:40:56