public function handlePayload(Payload $payload): void
    {
        $app = $this->getClientApplication();

        $this->logger->debug('Handling payload: ' . $payload->getPayload());

        switch ($type = $payload->getType()) {
            case Protocol::TYPE_TEXT:
                if (method_exists($app, 'onData')) {
                    $app->onData((string)$payload, $this);
                }
                return;

            case Protocol::TYPE_BINARY:
                if (method_exists($app, 'onBinaryData')) {
                    $app->onBinaryData((string)$payload, $this);
                } else {
                    $this->close(1003);
                }
                break;

            case Protocol::TYPE_PING:
                $this->logger->info('Ping received', 'notice');
                $this->send($payload->getPayload(), Protocol::TYPE_PONG);
                $this->logger->info('Pong!', 'debug');
                break;

            /**
             * A Pong frame MAY be sent unsolicited.  This serves as a
             * unidirectional heartbeat.  A response to an unsolicited Pong
             * frame is not expected.
             */
            case Protocol::TYPE_PONG:
                $this->logger->info('Received unsolicited pong');
                break;

            case Protocol::TYPE_CLOSE:
                $this->logger->notice('Close frame received');
                $this->close();
                $this->logger->info('Disconnected');
                break;

            default:
                throw new ConnectionException('Unhandled payload type');
        }
    }
public function handlePayload(Payload $payload): void
    {
        $app = $this->getClientApplication();

        $this->logger->debug('Handling payload: ' . $payload->getPayload());

        switch ($type = $payload->getType()) {
            case Protocol::TYPE_TEXT:
                if (method_exists($app, 'onData')) {
                    $app->onData((string)$payload, $this);
                }
                return;

            case Protocol::TYPE_BINARY:
                if (method_exists($app, 'onBinaryData')) {
                    $app->onBinaryData((string)$payload, $this);
                } else {
                    $this->close(1003);
                }
                break;

            case Protocol::TYPE_PING:
                $this->logger->info('Ping received', 'notice');
                $this->send($payload->getPayload(), Protocol::TYPE_PONG);
                $this->logger->info('Pong!', 'debug');
                break;

            /**
             * A Pong frame MAY be sent unsolicited.  This serves as a
             * unidirectional heartbeat.  A response to an unsolicited Pong
             * frame is not expected.
             */
            case Protocol::TYPE_PONG:
                $this->logger->info('Received unsolicited pong');
                break;

            case Protocol::TYPE_CLOSE:
                $this->logger->notice('Close frame received');
                $this->close();
                $this->logger->info('Disconnected');
                break;

            default:
                throw new ConnectionException('Unhandled payload type');
        }
    }
public function handlePayload ( Payload $ payload ) : void { $ app = $ this -> getClientApplication ( ) ; $ this -> logger -> debug ( 'Handling payload: ' . $ payload -> getPayload ( ) ) ; switch ( $ type = $ payload -> getType ( ) ) { case Protocol :: TYPE_TEXT : if ( method_exists ( $ app , 'onData' ) ) { $ app -> onData ( ( string ) $ payload , $ this ) ; } return ; case Protocol :: TYPE_BINARY : if ( method_exists ( $ app , 'onBinaryData' ) ) { $ app -> onBinaryData ( ( string ) $ payload , $ this ) ; } else { $ this -> close ( 1003 ) ; } break ; case Protocol :: TYPE_PING : $ this -> logger -> info ( 'Ping received' , 'notice' ) ; $ this -> send ( $ payload -> getPayload ( ) , Protocol :: TYPE_PONG ) ; $ this -> logger -> info ( 'Pong!' , 'debug' ) ; break ; /**
             * A Pong frame MAY be sent unsolicited.  This serves as a
             * unidirectional heartbeat.  A response to an unsolicited Pong
             * frame is not expected.
             */ case Protocol :: TYPE_PONG : $ this -> logger -> info ( 'Received unsolicited pong' ) ; break ; case Protocol :: TYPE_CLOSE : $ this -> logger -> notice ( 'Close frame received' ) ; $ this -> close ( ) ; $ this -> logger -> info ( 'Disconnected' ) ; break ; default : throw new ConnectionException ( 'Unhandled payload type' ) ; } }
Handle a complete payload received from the client

Public because called from our PayloadHandler

@param Payload $payload
@throws ConnectionException
Handle a complete payload received from the client