amphp / websocket-client

Async WebSocket client for PHP based on Amp.

Home Page:https://amphp.org/websocket-client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Exception not reaching outer try catch

programmin1 opened this issue · comments

I put the whole Loop doing a websocket in a try... catch( Exception $e ) {

If there is a problem, like I disconnect internet, I get...

   Amp\Websocket\ClosedException  : Connection closed abnormally while awaiting message; Code 1008 (POLICY_VIOLATION); Reason: "Exceeded unanswered PING limit"

  at .../vendor/amphp/websocket/src/Rfc6455Client.php:659
    655|                             $deferred->resolve();
    656|                             break;
    657| 
    658|                         default:
  > 659|                             $deferred->fail(new ClosedException(
    660|                                 'Connection closed abnormally while awaiting message',
    661|                                 $code,
    662|                                 $reason
    663|                             ));

  Exception trace:

  1   Amp\Websocket\Rfc6455Client::Amp\Websocket\{closure}()
      [internal]:0

  2   Generator::current()
      .../vendor/amphp/amp/lib/Coroutine.php:67

How can I catch error and retry since try/catch does not work?

How does your code look like?

The same way the example on your front page works:

Loop::run(function () { ...

$connection = yield connect('wss://...')....

while ($message = yield $connection->receive()) { ...