From 4911c724d5432d632e52d3aa3af8666b549542d5 Mon Sep 17 00:00:00 2001 From: David Dan Date: Tue, 12 Dec 2017 14:48:16 -0500 Subject: [PATCH] Auto open browser window when running example --- composer.json | 3 +++ example/chat_ws_server.php | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/composer.json b/composer.json index de40ead..3c4a2e1 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,9 @@ "ratchet/rfc6455": "^0.2.3", "react/http": "^0.8" }, + "require-dev":{ + "react/child-process": "^0.5.0" + }, "autoload": { "psr-4": { "Voryx\\WebSocketMiddleware\\": "src/" diff --git a/example/chat_ws_server.php b/example/chat_ws_server.php index d2efbef..c634c55 100644 --- a/example/chat_ws_server.php +++ b/example/chat_ws_server.php @@ -15,6 +15,7 @@ $loop = Factory::create(); $frontend = file_get_contents(__DIR__ . '/test.html'); +$uri = '127.0.0.1:4321'; $broadcast = new ThroughStream(); @@ -69,4 +70,28 @@ function (ServerRequestInterface $request, callable $next) use ($frontend) { $server->listen(new \React\Socket\Server('127.0.0.1:4321', $loop)); +openWebPage($loop, 'http://' . $uri); + $loop->run(); + +function openWebPage($loop, $url) +{ + $os = strtolower(php_uname(PHP_OS)); + + if (strpos($os, 'darwin') !== false) { + $open = 'open'; + } elseif (strpos($os, 'linux') !== false) { + $open = 'xdg-open'; + } else { + echo "Can't open your browser, you'll have to manually navigate to {$url}", PHP_EOL; + return; + } + + $process = new React\ChildProcess\Process("{$open} {$url}"); + + try { + $process->start($loop); + } catch (Exception $e) { + echo $e->getMessage(), PHP_EOL; + } +}