我设法使用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为"0.0.0.0"的服务器在页面加载后1/4秒内发送错误或没有响应,则Output将返回OFFLINE,否则将返回ONLINE。
当用户刷新页面时,服务器状态将更新。
现在我想让它实时更新(延迟不到7秒)
我知道在head标签中使用<meta http-equiv=”refresh” content=”5" />
有一种非常简单的方法。
但是,COMPLETE页面必须再次刷新和加载所有内容,这会导致一些不必要的流量,这很烦人。
有更简单的方法吗?
您可以在客户端使用ajax和javascript在后台打开PHP脚本,然后根据成功/失败的结果更新页面中的元素。
看看jQuery
和其他库可以轻松做到这一点。
另一种选择是简单的<iframe />
,以打开另一个网站作为网站上的元素。
不要使用ajax或任何直接轮询机制,因为它们会在流量方面给服务器带来更大的负载。
您可以使用websocket将数据推送到流中,并在前端中读取数据
https://socket.io/
这可以近乎实时地完成,您的页面不会被重复使用以每分钟更新一次。
将PHP脚本放在cron中,以按要求的时间间隔运行,最后只需将输出推送到套接字并在前端捕获它们。