实时服务器状态检查器

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”的服务器在页面加载后的 0.0.0.0 秒内发送错误或未响应,输出将 return 离线,否则它将 return在线.

当用户刷新页面时,服务器状态将更新。

现在我想让它实时更新(延迟小于7秒)

我知道有一个非常简单的方法可以在 head 标签中使用 <meta http-equiv=”refresh” content=”5" />

但是很烦人的是,COMPLETE 页面必须刷新并重新加载所有内容,这会导致一些不必要的流量。

有更简单的方法吗?

可以在客户端使用ajax和javascript在后台打开PHP脚本,然后根据[=18的结果更新页面中的元素=].

看看 jQuery 和其他库可以轻松地做到这一点。

另一种选择是 <iframe /> 将另一个网站作为网站上的一个元素打开。

不要使用 ajax 或任何会在流量方面给您的服务器增加更多负载的直接轮询机制。

您可以使用 websockets 将数据推送到流并在前端读取它

https://socket.io/

这可以近乎实时地完成,您的页面不会被要求每分钟更新一次。

按要求的时间间隔将 PHP 脚本放入 cron 到 运行,最后将输出推送到套接字并在前端捕获它们。