实时服务器状态检查器


Server Status Checker in real time

我设法使用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中,以按要求的时间间隔运行,最后只需将输出推送到套接字并在前端捕获它们。