Thruway\Peer\Client::addTransportProvider PHP Method

addTransportProvider() public method

Add transport provider
public addTransportProvider ( Thruway\Transport\ClientTransportProviderInterface $transportProvider )
$transportProvider Thruway\Transport\ClientTransportProviderInterface
    public function addTransportProvider(ClientTransportProviderInterface $transportProvider)
    {
        if ($this->transportProvider !== null) {
            throw new \Exception("You can only have one transport provider for a client");
        }
        $this->transportProvider = $transportProvider;
    }

Usage Example

 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     try {
         echo "Making a go at starting a Thruway worker.\n";
         $name = $input->getArgument('name');
         $config = $this->getContainer()->getParameter('voryx_thruway');
         $loop = $this->getContainer()->get('voryx.thruway.loop');
         $kernel = $this->getContainer()->get('wamp_kernel');
         $workerAnnotation = $kernel->getResourceMapper()->getWorkerAnnotation($name);
         if ($workerAnnotation) {
             $realm = $workerAnnotation->getRealm() ?: $config['realm'];
             $url = $workerAnnotation->getUrl() ?: $config['url'];
         } else {
             $realm = $config['realm'];
             $url = $config['url'];
         }
         $transport = new PawlTransportProvider($url);
         $client = new Client($realm, $loop);
         $client->addTransportProvider($transport);
         $kernel->setProcessName($name);
         $kernel->setClient($client);
         $kernel->setProcessInstance($input->getArgument('instance'));
         $client->start();
     } catch (\Exception $e) {
         $logger = $this->getContainer()->get('logger');
         $logger->addCritical("EXCEPTION:" . $e->getMessage());
         $output->writeln("EXCEPTION:" . $e->getMessage());
     }
 }
All Usage Examples Of Thruway\Peer\Client::addTransportProvider