我正在创建一个简单的实时聊天应用程序,所以我必须在页面的右侧显示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