Php 检测网络故障排除?

Php 检测网络故障排除?,php,networking,tcp,connection,Php,Networking,Tcp,Connection,在我的PHP脚本中,我启动了一个循环,如果客户端连接中止,我想中断这个循环 当用户按下停止按钮(基本的三向握手)时,它可以正常工作,但如果用户遇到网络故障(wifi连接问题),则不能正常工作 即使连接因网络故障而中止,循环仍在运行 我的代码: <?php while (1) { Echo "\n"; ob_flush(); flush(); if (connection_status() != CONNECTION_NORMAL) { bre

在我的PHP脚本中,我启动了一个循环,如果客户端连接中止,我想中断这个循环

当用户按下停止按钮(基本的三向握手)时,它可以正常工作,但如果用户遇到网络故障(wifi连接问题),则不能正常工作

即使连接因网络故障而中止,循环仍在运行

我的代码:

<?php
while (1) {
    Echo "\n";
    ob_flush();
    flush();
    if (connection_status() != CONNECTION_NORMAL) {
        break;
    }
    // update database
    sleep(1);
}
?>


那么我怎样才能打破这个循环呢?我找了很多木板,但没有找到任何答案。我还尝试了“HTTP保持活动状态”,但没有成功。

假设是PHP5,您的I/O连接应该会在连接状态上引发异常,或者超时,或者以其他方式通知您。处理异常,然后从那里开始

如果你正在寻找一个系统范围的通知(类似于Android的方式,让应用程序知道网络状态已经改变),我认为没有这样的事情


因此,您需要将您的读/写代码包装在一个容器中,以便它在出现问题时通知您,并在catch部分处理这种情况。检查文档中用于读/写的类/对象,并查看它是否/何时抛出异常。它可能仅在网络连接丢失时引发一般I/O错误。在许多情况下,这就足够了,因为通常您关心的只是是否可以发送数据包,而不一定是“为什么”。您可以使用这些信息来内置基本重试功能,或提示用户如何处理该功能。

故障排除是诊断问题的过程。这真的是你的意思吗?