我设法使用FSOCKOPEN显示服务器的状态。
<?php
$ip = "0.0.0.0";
$port = "1337";
$online = '<font class="online" title="Server Online!">ONLINE</font>';
$offline = '<font class="offline" title="Server Offline!">OFFLINE</font>';
if (! $sock=@fsockopen($ip, $port, $num, $error, 0.25))
{echo "$offline";}
else
{echo "$online";}
?>
如果服务器带有IP&#34; 0.0.0.0&#34;在页面加载后的1/4秒内发送错误或没有响应输出将返回OFFLINE,否则它将返回ONLINE。
当用户刷新页面时,服务器状态将更新。
现在我想让它实时更新(延迟不到7秒)
我知道在头标记中使用<meta http-equiv=”refresh” content=”5" />
有一种非常简单的方法。
但令人非常恼火的是,COMPLETE页面必须再次刷新并加载所有内容,并导致一些不必要的流量。
有更简单的方法吗?
答案 0 :(得分:0)
您可以在客户端使用ajax和javascript在后台打开PHP脚本,然后根据成功/失败更新页面中的元素。
查看jQuery
和其他图书馆,轻松完成此任务。
另一种选择是在网站上打开另一个网站的简单<iframe />
。
答案 1 :(得分:0)
请勿使用ajax或任何直接轮询机制,这些机制将在流量方面给服务器增加更多负担。
您可以使用websocket将数据推送到流并在前端读取
这可以几乎实时完成,并且不会要求您的页面每分钟更新一次。
将PHP脚本放入cron中,使其以所需的时间间隔运行,并在其末尾将输出推送到套接字并在前端捕获它们。