Thruway\Transport\InternalClientTransportProvider::handleRouterStart PHP Метод

handleRouterStart() публичный Метод

public handleRouterStart ( Thruway\Event\RouterStartEvent $event )
$event Thruway\Event\RouterStartEvent
    public function handleRouterStart(RouterStartEvent $event)
    {
        /** @var Session $session */
        $session = null;
        // create a new transport for the client side to use
        $clientTransport = new InternalClientTransport(function ($msg) use(&$session) {
            $session->dispatchMessage(Message::createMessageFromArray(json_decode(json_encode($msg))));
        }, $this->loop);
        // create a new transport for the router side to use
        $transport = new InternalClientTransport(function ($msg) use($clientTransport) {
            $this->internalClient->onMessage($clientTransport, Message::createMessageFromArray(json_decode(json_encode($msg))));
        }, $this->loop);
        $transport->setTrusted($this->trusted);
        $session = $this->router->createNewSession($transport);
        $this->session = $session;
        // connect the transport to the Router/Peer
        $this->router->getEventDispatcher()->dispatch("connection_open", new ConnectionOpenEvent($session));
        // open the client side
        $this->internalClient->onOpen($clientTransport);
        // internal client shouldn't retry
        $this->internalClient->setAttemptRetry(false);
        // tell the internal client to start up
        $this->internalClient->start(false);
    }