From b8967b999af7473e9d0fd150d523120ddb492036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20L=C3=BCck?= Date: Mon, 6 Feb 2017 08:09:41 +0100 Subject: [PATCH] Update Socket component to v0.5 --- composer.json | 2 +- src/Ratchet/App.php | 12 ++++++------ src/Ratchet/Server/IoServer.php | 8 +++++--- tests/autobahn/bin/fuzzingserver-noutf8.php | 4 +--- tests/autobahn/bin/fuzzingserver.php | 4 +--- tests/unit/Server/IoServerTest.php | 5 ++--- 6 files changed, 16 insertions(+), 19 deletions(-) diff --git a/composer.json b/composer.json index 80a3aa5..d396d9f 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ } , "require": { "php": ">=5.3.9" - , "react/socket": "^0.3 || ^0.4" + , "react/socket": "^0.5" , "guzzle/http": "^3.6" , "symfony/http-foundation": "^2.2|^3.0" , "symfony/routing": "^2.2|^3.0" diff --git a/src/Ratchet/App.php b/src/Ratchet/App.php index c52a2c7..b70fd4b 100644 --- a/src/Ratchet/App.php +++ b/src/Ratchet/App.php @@ -76,8 +76,7 @@ class App { $this->httpHost = $httpHost; $this->port = $port; - $socket = new Reactor($loop); - $socket->listen($port, $address); + $socket = new Reactor($address . ':' . $port, $loop); $this->routes = new RouteCollection; $this->_server = new IoServer(new HttpServer(new Router(new UrlMatcher($this->routes, new RequestContext))), $socket, $loop); @@ -85,13 +84,14 @@ class App { $policy = new FlashPolicy; $policy->addAllowedAccess($httpHost, 80); $policy->addAllowedAccess($httpHost, $port); - $flashSock = new Reactor($loop); - $this->flashServer = new IoServer($policy, $flashSock); + if (80 == $port) { - $flashSock->listen(843, '0.0.0.0'); + $flashUri = '0.0.0.0:843'; } else { - $flashSock->listen(8843); + $flashUri = 8843; } + $flashSock = new Reactor($flashUri, $loop); + $this->flashServer = new IoServer($policy, $flashSock); } /** diff --git a/src/Ratchet/Server/IoServer.php b/src/Ratchet/Server/IoServer.php index 921c7b1..9cf0798 100644 --- a/src/Ratchet/Server/IoServer.php +++ b/src/Ratchet/Server/IoServer.php @@ -66,8 +66,7 @@ class IoServer { */ public static function factory(MessageComponentInterface $component, $port = 80, $address = '0.0.0.0') { $loop = LoopFactory::create(); - $socket = new Reactor($loop); - $socket->listen($port, $address); + $socket = new Reactor($address . ':' . $port, $loop); return new static($component, $socket, $loop); } @@ -94,7 +93,10 @@ class IoServer { $conn->decor = new IoConnection($conn); $conn->decor->resourceId = (int)$conn->stream; - $conn->decor->remoteAddress = $conn->getRemoteAddress(); + $conn->decor->remoteAddress = trim( + parse_url('tcp://' . $conn->getRemoteAddress(), PHP_URL_HOST), + '[]' + ); $this->app->onOpen($conn->decor); diff --git a/tests/autobahn/bin/fuzzingserver-noutf8.php b/tests/autobahn/bin/fuzzingserver-noutf8.php index 5ce1cb4..0a92ba4 100644 --- a/tests/autobahn/bin/fuzzingserver-noutf8.php +++ b/tests/autobahn/bin/fuzzingserver-noutf8.php @@ -6,12 +6,10 @@ $impl = sprintf('React\EventLoop\%sLoop', $argc > 2 ? $argv[2] : 'StreamSelect'); $loop = new $impl; - $sock = new React\Socket\Server($loop); + $sock = new React\Socket\Server('0.0.0.0:' . $port, $loop); $web = new Ratchet\WebSocket\WsServer(new Ratchet\Server\EchoServer); $app = new Ratchet\Http\HttpServer($web); $web->setEncodingChecks(false); - $sock->listen($port, '0.0.0.0'); - $server = new Ratchet\Server\IoServer($app, $sock, $loop); $server->run(); diff --git a/tests/autobahn/bin/fuzzingserver.php b/tests/autobahn/bin/fuzzingserver.php index 093a5cf..62e9bc6 100644 --- a/tests/autobahn/bin/fuzzingserver.php +++ b/tests/autobahn/bin/fuzzingserver.php @@ -6,10 +6,8 @@ $impl = sprintf('React\EventLoop\%sLoop', $argc > 2 ? $argv[2] : 'StreamSelect'); $loop = new $impl; - $sock = new React\Socket\Server($loop); + $sock = new React\Socket\Server('0.0.0.0:' . $port, $loop); $app = new Ratchet\Http\HttpServer(new Ratchet\WebSocket\WsServer(new Ratchet\Server\EchoServer)); - $sock->listen($port, '0.0.0.0'); - $server = new Ratchet\Server\IoServer($app, $sock, $loop); $server->run(); diff --git a/tests/unit/Server/IoServerTest.php b/tests/unit/Server/IoServerTest.php index 808098a..ec54b5d 100644 --- a/tests/unit/Server/IoServerTest.php +++ b/tests/unit/Server/IoServerTest.php @@ -20,10 +20,9 @@ class IoServerTest extends \PHPUnit_Framework_TestCase { $this->app = $this->getMock('\\Ratchet\\MessageComponentInterface'); $loop = new StreamSelectLoop; - $this->reactor = new Server($loop); - $this->reactor->listen(0); + $this->reactor = new Server(0, $loop); - $this->port = $this->reactor->getPort(); + $this->port = parse_url('tcp://' . $this->reactor->getAddress(), PHP_URL_PORT); $this->server = new IoServer($this->app, $this->reactor, $loop); }