} $port = isset($serverConfig['port']) ? $serverConfig['port'] : 9000; echo 'Starting WebSocket server at ' . $hostnames[0] . ':' . $port . '...' . "\n"; //Sessions $sessionProvider = new SessionProvider(); $sessionHandler = $sessionProvider->handler(); //Servers $apiServer = new ApiWebSocketServer(); $decoratedApiServer = new RatchetSessionProvider(new WampServer($apiServer), $sessionHandler); $peerServer = new PeerServer($hostnames[0], $port); $decoratedPeerServer = new RatchetSessionProvider($peerServer, $sessionHandler); $peerHttpServer = new PeerHttpServer($peerServer); //HTTP servers don't support SessionProvider //Provide the peer server to the associated controller PeerController::setPeerServer($peerServer); PeerController::setApiServer($apiServer); // Bind to 0.0.0.0 to accept remote connections // See http://socketo.me/docs/troubleshooting $app = new App($hostnames[0], $port, '0.0.0.0'); foreach ($hostnames as $host) { //Webos' API. Accessible from the same origin only $app->route('/api', $decoratedApiServer, array(), $host); //PeerJS server. Accessible from all origins $app->route('/peerjs', $decoratedPeerServer, array('*'), $host); $app->route('/peerjs/id', $peerHttpServer, array('*'), $host); $app->route('/peerjs/peers', $peerHttpServer, array('*'), $host); $app->route('/peerjs/{id}/{token}/id', $peerHttpServer, array('*'), $host); $app->route('/peerjs/{id}/{token}/offer', $peerHttpServer, array('*'), $host); $app->route('/peerjs/{id}/{token}/candidate', $peerHttpServer, array('*'), $host); $app->route('/peerjs/{id}/{token}/answer', $peerHttpServer, array('*'), $host); $app->route('/peerjs/{id}/{token}/leave', $peerHttpServer, array('*'), $host);
if (!$enabled) { //WebSocket server not enabled exit('Cannot start WebSocket server: server is not enabled in ' . $serverConfigFilePath); } $hostname = isset($serverConfig['hostname']) ? $serverConfig['hostname'] : 'localhost'; $port = isset($serverConfig['port']) ? $serverConfig['port'] : 9000; echo 'Starting WebSocket server at ' . $hostname . ':' . $port . '...' . "\n"; //Sessions $sessionProvider = new SessionProvider(); $sessionHandler = $sessionProvider->handler(); //Servers $apiServer = new ApiWebSocketServer(); $peerServer = new PeerServer($hostname, $port); $peerHttpServer = new PeerHttpServer($peerServer); //HTTP servers doesn't support SessionProvider //Provide the peer server to the associated controller PeerController::setPeerServer($peerServer); $app = new App($hostname, $port, '0.0.0.0'); // 0.0.0.0 to accept remote connections //Webos' API. Accessible from the same origin only $app->route('/api', new RatchetSessionProvider($apiServer, $sessionHandler)); //PeerJS server. Accessible from all origins $app->route('/peerjs', new RatchetSessionProvider($peerServer, $sessionHandler), array('*')); $app->route('/peerjs/id', $peerHttpServer, array('*')); $app->route('/peerjs/{id}/{token}/id', $peerHttpServer, array('*')); $app->route('/peerjs/{id}/{token}/offer', $peerHttpServer, array('*')); $app->route('/peerjs/{id}/{token}/candidate', $peerHttpServer, array('*')); $app->route('/peerjs/{id}/{token}/answer', $peerHttpServer, array('*')); $app->route('/peerjs/{id}/{token}/leave', $peerHttpServer, array('*')); $app->run(); //Start the server