} $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);