如何用Amphop捕获php websocket中断的TCP连接异常?

如何用Amphop捕获php websocket中断的TCP连接异常?,php,websocket,phpwebsocket,amphp,Php,Websocket,Phpwebsocket,Amphp,这是当前的WebSocket循环,我正在运行,而连接仍处于活动状态。但在连续11个小时的连接后,我收到了一个异常 “异常”:“[object](Amp\\Websocket\\ClosedException(代码:1006):连接已关闭:客户端在…关闭了底层TCP连接。 如何检查关闭的连接或异常本身?,这样我可以正确地结束脚本逻辑而不会突然失败 \Amp\Loop::run(function () use ($fn, $st) { $connec

这是当前的WebSocket循环,我正在运行,而连接仍处于活动状态。但在连续11个小时的连接后,我收到了一个异常

“异常”:“[object](Amp\\Websocket\\ClosedException(代码:1006):连接已关闭:客户端在…关闭了底层TCP连接。

如何检查关闭的连接或异常本身?,这样我可以正确地结束脚本逻辑而不会突然失败

     \Amp\Loop::run(function () use ($fn, $st)
        {
            $connection = yield \Amp\Websocket\connect('wss://URL');

            yield $connection->send('{"action":"auth","params":"KEYID"}');
            yield $connection->send('{"action":"subscribe","params":"'.$st.'"}');

            $i = 0;

            while ($message = yield $connection->receive()) 
            {
                $i++;
                $payload = yield $message->buffer();

                $r = $fn($payload, $i);

                if ($r == false) {
                    $connection->close();
                    break;
                }
            }
        }
    );
我使用的是Amphop Websocket:


谢谢!

我确实找到了解决方法,在抛出
ClosedException
后,我查找了它并运行了其他任务

\Amp\Loop::run(函数()使用($fn,$st)
{
尝试
{
$connection=yield\Amp\Websocket\connect('wss://URL');
产生$connection->send(“{”action:“auth”,“params:“KEYID”}”);
产生$connection->send('{“action”:“subscribe”,“params”:“'.$st.”“}”);
$i=0;
而($message=yield$connection->receive())
{
$i++;
$payload=yield$message->buffer();
$r=$fn($i);
如果($r==false){
$connection->close();
打破
}
}
}
捕获(\Amp\Websocket\ClosedException$e)
{
//在这里做点什么
}
}
);