diff --git a/server/index.php b/server/index.php index 3ee8db1d40dcf0dcd9ccda5abd3ad0b63e7d806c..8d237aefa30cf95fcc8505273ed71580dfac3eae 100644 --- a/server/index.php +++ b/server/index.php @@ -27,16 +27,18 @@ foreach ($_SERVER as $k => $v) { $json = json_encode($vars, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); +header('Content-Type: application/json', true); switch ($vars['REQUEST_URI']) { case '/long-to-execute': + flush(); sleep(5); break; case '/faster': + flush(); sleep(1); break; } -header('Content-Type: application/json', true); echo $json; diff --git a/test2.php b/test2.php index 42e223bfde8e3202d18653a394e18aeba4f92a13..140bc27a626bf134da4bffbb377023ca3281caef 100644 --- a/test2.php +++ b/test2.php @@ -13,11 +13,12 @@ $response2 = $response = $client->request('GET', 'http://localhost:8001/faster') $stream2 = $response2->toStream(); stream_set_blocking($stream2, 0); +$originalRead = [$stream1, $stream2]; $write = []; $except = []; do { - $read = [$stream1, $stream2]; - $foo = stream_select($read, $write, $except, null, 0); + $read = $originalRead; + $foo = @stream_select($read, $write, $except, null, 0); foreach ($read as $item) { var_dump(stream_get_contents($item)); @@ -25,8 +26,14 @@ do { echo "Stream 1: \n"; var_dump(\feof($stream1)); + if (\feof($stream1)) { + unset($originalRead[0]); + } echo "Stream 2: \n"; var_dump(\feof($stream2)); -} while (!\feof($stream1) && !\feof($stream2)); // while streams are not finished + if (\feof($stream1)) { + unset($originalRead[1]); + } +} while (!\feof($stream1) || !\feof($stream2)); // while streams are not finished