我正在創建一個簡單的實時聊天應用程序,所以我必須在頁面的右側顯示chatBuddyList
。 (user_id
,name,email ...)和tbl_logged_user
(id,user_id
)。獲取登錄用戶列表PHP
用戶登錄我會將user_id
添加到tbl_logged_users
並在註銷時刪除該記錄。
一切都很好,但問題是與Logout
。當用戶點擊logout
鏈接它將工作,但有時用戶可能會自動註銷,由於會話到期,瀏覽器關閉等...
我該如何處理這種情況?什麼是實現這一目標的最佳方式?
謝謝。
我想找到最好的方法,只是因爲確切的應用程序不是一個真正的聊天基礎之一,我有一個表/ s與平均
80,000
記錄。投票/彗星運行時間約5-10秒。
編輯
有一些答案說關於session_id
。我相信它沒有用,因爲會話超時PHP不能自動更新數據庫表,除非有新的請求。
我以前做過這個。爲了解決這個問題,有必要在數據庫中寫入與客戶端最近一次聯繫的時間戳,並測試它是否早於x秒。 – fnkr 2013-03-11 09:37:28
@fnkr「閒置」用戶呢。 – Red 2013-03-11 09:43:20
你可以實現[SessionHandlerInterface](http://php.net/manual/en/class.sessionhandlerinterface.php)。在你的[destroy](http://php.net/manual/en/sessionhandlerinterface.destroy.php)方法中,你可以使用session_id()更新數據庫。 – mend3 2017-10-31 11:42:27