在线列表问题 - 在php中聊天

时间:2011-01-21 05:14:20

标签: php

我必须识别在线用户

条件是当用户关闭窗口时,他/她将从在线列表中自动删除。

正在基于会话值生成列表。

任何人请帮助我.........

2 个答案:

答案 0 :(得分:3)

难以在关闭窗口事件中存储标志。如果用户关闭浏览器直接关闭系统怎么办?

每次用户执行某些活动(包括页面刷新)时,通过在数据库中存储unix时间戳,可以实现大致相同的操作。

要查看用户是否在线,请为此时间戳添加一定的时间量,并将该值与当前时间戳进行比较。

例如。假设我们决定在过去10分钟内有一些活动在线考虑用户

$online = ($last_active_time + 600 > time()) ? True : False;

答案 1 :(得分:0)

<script type="text/javascript">
window.onclose = function()
{
    // use jquery to make an ajax post to your chats controller, telling it someone has signed off.
    // CURRENT_USER_ID will have to be passed from your application to JS, or you could try to read your session cookie there...maybe
    $.post('/chats/signed_off', {user_id: CURRENT_USER_ID});
}
</script>

这就是逻辑。实施将特定于您的应用程序,我们对此一无所知。