diff --git a/src/Ratchet/App.php b/src/Ratchet/App.php index 5094e7e4..3833fff8 100644 --- a/src/Ratchet/App.php +++ b/src/Ratchet/App.php @@ -3,8 +3,8 @@ use React\EventLoop\Factory as LegacyLoopFactory; use React\EventLoop\Loop; use React\EventLoop\LoopInterface; -use React\Socket\Server as Reactor; -use React\Socket\SecureServer as SecureReactor; +use React\Socket\Server as LegacySocketServer; +use React\Socket\SocketServer; use Ratchet\Http\HttpServerInterface; use Ratchet\Http\OriginCheck; use Ratchet\Wamp\WampServerInterface; @@ -80,7 +80,8 @@ public function __construct($httpHost = 'localhost', $port = 8080, $address = '1 $this->httpHost = $httpHost; $this->port = $port; - $socket = new Reactor($address . ':' . $port, $loop, $context); + // prefer SocketServer (reactphp/socket v1.9+) over legacy \React\Socket\Server + $socket = class_exists('React\Socket\SocketServer') ? new SocketServer($address . ':' . $port, $context, $loop) : new LegacySocketServer($address . ':' . $port, $loop, $context); $this->routes = new RouteCollection; $this->_server = new IoServer(new HttpServer(new Router(new UrlMatcher($this->routes, new RequestContext))), $socket, $loop); @@ -94,7 +95,9 @@ public function __construct($httpHost = 'localhost', $port = 8080, $address = '1 } else { $flashUri = 8843; } - $flashSock = new Reactor($flashUri, $loop); + + // prefer SocketServer (reactphp/socket v1.9+) over legacy \React\Socket\Server + $flashSock = class_exists('React\Socket\SocketServer') ? new SocketServer($flashUri, [], $loop) : new LegacySocketServer($flashUri, $loop); $this->flashServer = new IoServer($policy, $flashSock); } diff --git a/src/Ratchet/Server/IoServer.php b/src/Ratchet/Server/IoServer.php index 30b4c8fc..d54f20f5 100644 --- a/src/Ratchet/Server/IoServer.php +++ b/src/Ratchet/Server/IoServer.php @@ -5,9 +5,9 @@ use React\EventLoop\Loop; use React\EventLoop\LoopInterface; use React\Socket\ConnectionInterface as SocketConnection; +use React\Socket\Server as LegacySocketServer; use React\Socket\ServerInterface; -use React\Socket\Server as Reactor; -use React\Socket\SecureServer as SecureReactor; +use React\Socket\SocketServer; /** * Creates an open-ended socket to listen on a port for incoming connections. @@ -64,7 +64,8 @@ public static function factory(MessageComponentInterface $component, $port = 80, // prefer default Loop (reactphp/event-loop v1.2+) over legacy \React\EventLoop\Factory $loop = class_exists('React\EventLoop\Loop') ? Loop::get() : LegacyLoopFactory::create(); - $socket = new Reactor($address . ':' . $port, $loop); + // prefer SocketServer (reactphp/socket v1.9+) over legacy \React\Socket\Server + $socket = class_exists('React\Socket\SocketServer') ? new SocketServer($address . ':' . $port, [], $loop) : new LegacySocketServer($address . ':' . $port, $loop); return new static($component, $socket, $loop); } diff --git a/tests/autobahn/bin/fuzzingserver.php b/tests/autobahn/bin/fuzzingserver.php index 66d37048..d3b562cc 100644 --- a/tests/autobahn/bin/fuzzingserver.php +++ b/tests/autobahn/bin/fuzzingserver.php @@ -22,7 +22,9 @@ public function onError(ConnectionInterface $conn, \Exception $e) { $impl = sprintf('React\EventLoop\%sLoop', $argc > 2 ? $argv[2] : 'StreamSelect'); $loop = new $impl; - $sock = new React\Socket\Server('0.0.0.0:' . $port, $loop); + + // prefer SocketServer (reactphp/socket v1.9+) over legacy \React\Socket\Server + $sock = class_exists('React\Socket\SocketServer') ? new React\Socket\SocketServer('0.0.0.0:' . $port, [], $loop) : new React\Socket\Server('0.0.0.0:' . $port, $loop); $wsServer = new Ratchet\WebSocket\WsServer(new BinaryEcho); // This is enabled to test https://github.com/ratchetphp/Ratchet/issues/430 diff --git a/tests/unit/Server/IoServerTest.php b/tests/unit/Server/IoServerTest.php index 5b470c6c..c49c6da4 100644 --- a/tests/unit/Server/IoServerTest.php +++ b/tests/unit/Server/IoServerTest.php @@ -3,7 +3,8 @@ use PHPUnit\Framework\TestCase; use React\EventLoop\StreamSelectLoop; use React\EventLoop\LoopInterface; -use React\Socket\Server; +use React\Socket\Server as LegacySocketServer; +use React\Socket\SocketServer; /** * @covers Ratchet\Server\IoServer @@ -32,7 +33,9 @@ public function setUpServer() { $this->app = $this->getMockBuilder('Ratchet\\MessageComponentInterface')->getMock(); $loop = new StreamSelectLoop; - $this->reactor = new Server(0, $loop); + + // prefer SocketServer (reactphp/socket v1.9+) over legacy \React\Socket\Server + $this->reactor = class_exists('React\Socket\SocketServer') ? new SocketServer('127.0.0.1:0', [], $loop) : new LegacySocketServer('127.0.0.1:0', $loop); $uri = $this->reactor->getAddress(); $this->port = parse_url((strpos($uri, '://') === false ? 'tcp://' : '') . $uri, PHP_URL_PORT);