PHP获取在线人数思路
如果能让一个php脚本在服务器后台运行。我写一个定时刷新就行了。现在客户端每访问一次服务器,就会刷新当前时间。如果时间差距过大就判断为离线。但是这个是在客户端访问服务器的...
如果能让一个php脚本在服务器后台运行。我写一个定时刷新就行了。
现在客户端每访问一次服务器,就会刷新当前时间。如果时间差距过大就判断为离线。
但是这个是在客户端访问服务器的情况下触发的。客户端的网页都关闭了,就不好触发了。
难道要每一个客户端都扫一遍服务器上的用户信息,然后再判断哪些没有离线?求思路。 展开
现在客户端每访问一次服务器,就会刷新当前时间。如果时间差距过大就判断为离线。
但是这个是在客户端访问服务器的情况下触发的。客户端的网页都关闭了,就不好触发了。
难道要每一个客户端都扫一遍服务器上的用户信息,然后再判断哪些没有离线?求思路。 展开
4个回答
推荐于2016-12-04 · 知道合伙人互联网行家
关注
展开全部
用register_shutdown_function函数就行了。下面是例子。
<?php
function shutdown($user)
{
// This is our shutdown function, in
// here we can do any last operations
// before the script is complete.
// echo 'Script executed with success', PHP_EOL;
file_put_contents('d:/a.php',$user."已离线\n",8); //写入到d盘a.php文件中,追加方式。
}
register_shutdown_function('shutdown','abc'); //每个脚本加入这句就行了。
sleep(10); //这是本地测试用的,方便你关闭网页。
?>
<?php
function shutdown($user)
{
// This is our shutdown function, in
// here we can do any last operations
// before the script is complete.
// echo 'Script executed with success', PHP_EOL;
file_put_contents('d:/a.php',$user."已离线\n",8); //写入到d盘a.php文件中,追加方式。
}
register_shutdown_function('shutdown','abc'); //每个脚本加入这句就行了。
sleep(10); //这是本地测试用的,方便你关闭网页。
?>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在客户端的网页上加一个定时器,每隔一段时间向服务器发送一个HttpRequest,如果收不到,就判断为离线。
追问
是这样,但是收不到之后。客户端已经消失了。服务器又没有后台运行的脚本。谁去判断它为离线?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在客户端网页前台加上onbeforeunload函数,在客户关闭网页的时候向后台传递信息。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询