From 63c867983b80678bc4cedb4ce491eed114be7c86 Mon Sep 17 00:00:00 2001 From: Maxime Veber <nek.dev@gmail.com> Date: Sun, 5 Jan 2020 18:31:10 +0100 Subject: [PATCH] Flush headers (& fix test) --- server/index.php | 4 +++- test2.php | 13 ++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/server/index.php b/server/index.php index 3ee8db1..8d237ae 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 42e223b..140bc27 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 -- GitLab