如何用Amphop捕获php websocket中断的TCP连接异常?
这是当前的WebSocket循环,我正在运行,而连接仍处于活动状态。但在连续11个小时的连接后,我收到了一个异常如何用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
“异常”:“[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)
{
//在这里做点什么
}
}
);