实时服务器状态检查器
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 将数据推送到流并在前端读取它
这可以近乎实时地完成,您的页面不会被要求每分钟更新一次。
按要求的时间间隔将 PHP 脚本放入 cron 到 运行,最后将输出推送到套接字并在前端捕获它们。
我设法使用 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 将数据推送到流并在前端读取它
这可以近乎实时地完成,您的页面不会被要求每分钟更新一次。
按要求的时间间隔将 PHP 脚本放入 cron 到 运行,最后将输出推送到套接字并在前端捕获它们。