Вот текущий цикл WebSocket, который я запускаю, пока соединение еще живо. Но после 11 часов непрерывного соединения я получил исключение
"exception":"[object] (Amp\\Websocket\\ClosedException(code: 1006): The connection was closed: Client closed the underlying TCP connection at ...
Как я могу проверить закрытое соединение или само исключение?, таким образом я могу правильно завершить логику скрипта без внезапного сбоя.
\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;
}
}
}
);
Я использую этот Amphp Websocket: https://github.com/amphp/websocket-client
Спасибо!