在线列表问题-用php聊天

在线列表问题-用php聊天,php,Php,我必须确定在线用户的身份 条件是当用户关闭窗口时,他/她将自动从联机列表中删除 正在根据会话值生成列表 任何人请帮助我……… <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

我必须确定在线用户的身份

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

正在根据会话值生成列表

任何人请帮助我………


<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>
window.onclose=函数() { //使用jquery向您的聊天控制器发送ajax帖子,告诉它有人已注销。 //当前用户ID必须从您的应用程序传递到JS,或者您可以尝试在那里读取会话cookie…也许 $.post('/chats/signed_off',{user_id:CURRENT_user_id}); }
这就是逻辑。该实现将特定于您的应用程序,我们对此一无所知。


window.onclose=函数()
{
//使用jquery向您的聊天控制器发送ajax帖子,告诉它有人已注销。
//当前用户ID必须从您的应用程序传递到JS,或者您可以尝试在那里读取会话cookie…也许
$.post('/chats/signed_off',{user_id:CURRENT_user_id});
}

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

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

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

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

如果我们在过去的10分钟内有一些活动

,我们决定考虑一个在线用户。
$online = ($last_active_time + 600 > time()) ? True : False;

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

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

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

如果我们在过去的10分钟内有一些活动

,我们决定考虑一个在线用户。
$online = ($last_active_time + 600 > time()) ? True : False;

这里有很多例子,+1这是一个更好的主意,大多数真实聊天脚本是如何通过活动轮询实现的。这里有很多例子,+1这是一个更好的主意,大多数真实聊天脚本是如何通过活动轮询实现的。您无法可靠地判断窗口是否已关闭。您只知道客户端已停止向您发送HTTP请求。如何处理这个问题取决于你自己,但不管你如何处理,你都要实现某种超时。你无法可靠地判断窗口是否已关闭。您只知道客户端已停止向您发送HTTP请求。你想如何处理这个问题取决于你自己,但是不管你如何处理它,你都要实现某种类型的超时。