diff options
author | marvin-borner@live.com | 2018-04-10 21:50:16 +0200 |
---|---|---|
committer | marvin-borner@live.com | 2018-04-10 21:54:48 +0200 |
commit | fc9401f04a3aca5abb22f87ebc210de8afe11d32 (patch) | |
tree | b0b310f3581764ec3955f4e496a05137a32951c3 /assets/php/vendor/react/event-loop/examples/13-http-client-blocking.php | |
parent | 286d643180672f20526f3dc3bd19d7b751e2fa97 (diff) |
Initial Commit
Diffstat (limited to 'assets/php/vendor/react/event-loop/examples/13-http-client-blocking.php')
-rw-r--r-- | assets/php/vendor/react/event-loop/examples/13-http-client-blocking.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/assets/php/vendor/react/event-loop/examples/13-http-client-blocking.php b/assets/php/vendor/react/event-loop/examples/13-http-client-blocking.php new file mode 100644 index 0000000..a2dde55 --- /dev/null +++ b/assets/php/vendor/react/event-loop/examples/13-http-client-blocking.php @@ -0,0 +1,35 @@ +<?php + +use React\EventLoop\Factory; + +require __DIR__ . '/../vendor/autoload.php'; + +$loop = Factory::create(); + +// connect to www.google.com:80 (blocking call!) +// for illustration purposes only, should use react/socket instead +$stream = stream_socket_client('tcp://www.google.com:80'); +if (!$stream) { + exit(1); +} +stream_set_blocking($stream, false); + +// send HTTP request +fwrite($stream, "GET / HTTP/1.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n"); + +// wait for HTTP response +$loop->addReadStream($stream, function ($stream) use ($loop) { + $chunk = fread($stream, 64 * 1024); + + // reading nothing means we reached EOF + if ($chunk === '') { + echo '[END]' . PHP_EOL; + $loop->removeReadStream($stream); + fclose($stream); + return; + } + + echo $chunk; +}); + +$loop->run(); |