diff --git a/src/Ratchet/App.php b/src/Ratchet/App.php index 3833fff8..6bf86e9f 100644 --- a/src/Ratchet/App.php +++ b/src/Ratchet/App.php @@ -93,7 +93,7 @@ public function __construct($httpHost = 'localhost', $port = 8080, $address = '1 if (80 == $port) { $flashUri = '0.0.0.0:843'; } else { - $flashUri = 8843; + $flashUri = '127.0.0.1:8843'; } // prefer SocketServer (reactphp/socket v1.9+) over legacy \React\Socket\Server diff --git a/tests/unit/AppTest.php b/tests/unit/AppTest.php index 7e058e38..b3c879e3 100644 --- a/tests/unit/AppTest.php +++ b/tests/unit/AppTest.php @@ -3,6 +3,7 @@ use PHPUnit\Framework\TestCase; use Ratchet\App; +use Ratchet\Server\IoServer; class AppTest extends TestCase { public function testCtorThrowsForInvalidLoop() { @@ -14,4 +15,22 @@ public function testCtorThrowsForInvalidLoop() { } new App('localhost', 8080, '127.0.0.1', 'loop'); } + + public function testCtorWithoutArgumentsStartsListeningOnDefaultPorts() { + if (@stream_socket_server('127.0.0.1:8080') === false || @stream_socket_server('127.0.0.1:8843') === false) { + $this->markTestSkipped('Default socket port 8080 or 8843 not available or already in use'); + } + $app = new App(); + + $ref = new \ReflectionProperty($app, '_server'); + $ref->setAccessible(true); + $server = $ref->getValue($app); + assert($server instanceof IoServer); + + $this->assertStringMatchesFormat('%S127.0.0.1:8080', $server->socket->getAddress()); + $this->assertStringMatchesFormat('%S127.0.0.1:8843', $app->flashServer->socket->getAddress()); + + $server->socket->close(); + $app->flashServer->socket->close(); + } }