Add a transport provider
public addTransportProvider ( Thruway\Transport\RouterTransportProviderInterface $transportProvider ) | ||
$transportProvider | Thruway\Transport\RouterTransportProviderInterface |
public function start() { $this->loop = \WyriHaximus\Ratchet\loopResolver(); $router = new Router($this->loop); $router->addInternalClient(new InternalClient('first', $this->loop)); $router->addTransportProvider(new RatchetTransportProvider(Configure::read('WyriHaximus.Ratchet.Connection.Websocket.address'), Configure::read('WyriHaximus.Ratchet.Connection.Websocket.port'))); //$router->getRealmManager()->setDefaultAuthorizationManager(new AllPermissiveAuthorizationManager()); EventManager::instance()->dispatch(WebsocketStartEvent::create($this->loop)); $router->start(false); $this->loop->run(); }
/** * @param ConstructEvent $event */ public function construct(ConstructEvent $event) { $router = new Router($event->getLoop()); foreach (Configure::read('WyriHaximus.Ratchet.realms') as $realm => $config) { $router->addInternalClient(new InternalClient($realm, $event->getLoop())); } $router->addTransportProvider(new RatchetTransportProvider(Configure::read('WyriHaximus.Ratchet.internal.address'), Configure::read('WyriHaximus.Ratchet.internal.port'))); //$router->getRealmManager()->setDefaultAuthorizationManager(new AllPermissiveAuthorizationManager()); EventManager::instance()->dispatch(WebsocketStartEvent::create($event->getLoop())); $router->start(false); }
<?php if (file_exists(__DIR__ . '/../../../autoload.php')) { require __DIR__ . '/../../../autoload.php'; } else { require __DIR__ . '/../vendor/autoload.php'; } use Thruway\Peer\Router; use Thruway\Transport\RatchetTransportProvider; $router = new Router(); $transportProvider = new RatchetTransportProvider("0.0.0.0", 6661); $router->addTransportProvider($transportProvider); $router->start();
<?php /** * This requires "facebook/php-sdk-v4" : "4.0.*" */ require '../../bootstrap.php'; require 'FacebookAuthProvider.php'; use Thruway\Peer\Router; use Thruway\Transport\RatchetTransportProvider; $router = new Router(); $authMgr = new \Thruway\Authentication\AuthenticationManager(); $router->setAuthenticationManager($authMgr); $router->addTransportProvider(new \Thruway\Transport\InternalClientTransportProvider($authMgr)); $authProvClient = new FacebookAuthProvider(['*'], 'YOUR_APP_ID', 'YOUR_APP_SECRET'); $router->addTransportProvider(new \Thruway\Transport\InternalClientTransportProvider($authProvClient)); $transportProvider = new RatchetTransportProvider("127.0.0.1", 9090); $router->addTransportProvider($transportProvider); $router->start();
require_once __DIR__ . '/bootstrap.php'; require_once __DIR__ . '/Clients/InternalClient.php'; require_once __DIR__ . '/Clients/SimpleAuthProviderClient.php'; require_once __DIR__ . '/Clients/AbortAfterHelloAuthProviderClient.php'; require_once __DIR__ . '/Clients/DisclosePublisherClient.php'; use Thruway\Logging\Logger; use Thruway\Peer\Router; use Thruway\Transport\RatchetTransportProvider; //Logger::set(new \Psr\Log\NullLogger()); $timeout = isset($argv[1]) ? $argv[1] : 0; $router = new Router(); $loop = $router->getLoop(); $authMgr = new \Thruway\Authentication\AuthenticationManager(); $router->setAuthenticationManager($authMgr); $router->addTransportProvider(new \Thruway\Transport\InternalClientTransportProvider($authMgr)); //Provide authentication for the realm: 'testSimpleAuthRealm' $authProvClient = new SimpleAuthProviderClient(["testSimpleAuthRealm", "authful_realm"]); $router->addTransportProvider(new \Thruway\Transport\InternalClientTransportProvider($authProvClient)); // provide aborting auth provider $authAbortAfterHello = new AbortAfterHelloAuthProviderClient(["abortafterhello"]); $router->addTransportProvider(new \Thruway\Transport\InternalClientTransportProvider($authAbortAfterHello)); //////////////////// // Test stuff for Authorization $authorizationManager = new \Thruway\Authentication\AuthorizationManager('authorizing_realm'); $authorizingRealm = new \Thruway\Realm('authorizing_realm'); $authorizingRealm->setAuthorizationManager($authorizationManager); $router->getRealmManager()->addRealm($authorizingRealm); $router->addTransportProvider(new \Thruway\Transport\InternalClientTransportProvider($authorizationManager)); // Create a realm with Authentication also // to test some stuff
<?php use SlackWamp\SlackClient; use Thruway\Peer\Router; use Thruway\Transport\PawlTransportProvider; use Thruway\Transport\RatchetTransportProvider; require '../vendor/autoload.php'; $token = 'your_slack_token'; //your slack token https://my.slack.com/services/new/bot $realm = 'realm1'; // WAMP Realm $uri = 'ws://127.0.0.1:9090/'; // WAMP Router URI $router = new Router(); $router->addTransportProvider(new RatchetTransportProvider("127.0.0.1", 9090)); $client = new SlackClient($token, $realm, $router->getLoop()); $client->addTransportProvider(new PawlTransportProvider($uri)); $client->start(false); $router->start();
<?php /** * This is an example of how to use the InternalClientTransportProvider * * For more information go to: * http://voryx.net/creating-internal-client-thruway/ */ require "../bootstrap.php"; require 'InternalClient.php'; use Thruway\Peer\Router; use Thruway\Transport\RatchetTransportProvider; $router = new Router(); $transportProvider = new RatchetTransportProvider("127.0.0.1", 9090); $router->addTransportProvider($transportProvider); $internalTransportProvider = new Thruway\Transport\InternalClientTransportProvider(new \InternalClient()); $router->addTransportProvider($internalTransportProvider); $router->start();
/** * Test router start * * @return \Thruway\Peer\Router * @throws Exception */ public function testStart() { $this->router->addTransportProvider($this->transportProviderMock); $this->router->start(); return $this->router; }