コード例 #1
0
ファイル: wsserver.php プロジェクト: mtobbias/GuaranaOS
}
$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);