我想知道我是否可以确定某人的会话是否已经结束,以及我是否可以做某些事情。
例如,如果会话已结束,则将播放器状态设置为离线。
答案 0 :(得分:1)
如果用户未向服务器发出请求,则除非使用数据库系统,否则无法可靠地知道会话何时结束。例如,您有一个会话表:
session_id | user_id | session_start_time
每当您加载页面时,您会查看session_start_time是否足够大以便删除。例如:
if (($data['session_start_time'] + USER_SESSION_TTL) < time()) {
// delete row
}
USER_SESSION_TTL
是用户会话处于非活动状态时保持活动状态的时间。
现在,如果用户没有与他关联的会话,您可以放心地假设他处于离线状态。我概括了一下,但它可以应用于许多系统。
希望这有帮助
答案 1 :(得分:0)
但是,没有内置的机制,如果你实现自己的会话处理程序,你可以做一些事情。
请参阅http://nl2.php.net/manual/en/function.session-set-save-handler.php了解一些想法。