| 
<?php
 // Simple plaintext HTTP client example (for illustration purposes only).
 // This shows how a plaintext TCP/IP connection is established to then send an
 // application level protocol message (HTTP).
 // Real applications should use react/http-client instead!
 //
 // This simple example only accepts an optional host parameter to send the
 // request to.
 //
 // $ php examples/01-http.php
 // $ php examples/01-http.php reactphp.org
 
 use React\EventLoop\Factory;
 use React\Stream\DuplexResourceStream;
 
 require __DIR__ . '/../vendor/autoload.php';
 
 $host = isset($argv[1]) ? $argv[1] : 'www.google.com';
 
 // connect to tcp://www.google.com:80 (blocking call!)
 // for illustration purposes only, should use react/http-client or react/socket instead!
 $resource = stream_socket_client('tcp://' . $host . ':80');
 if (!$resource) {
 exit(1);
 }
 
 $loop = Factory::create();
 $stream = new DuplexResourceStream($resource, $loop);
 
 $stream->on('data', function ($chunk) {
 echo $chunk;
 });
 $stream->on('close', function () {
 echo '[CLOSED]' . PHP_EOL;
 });
 
 $stream->write("GET / HTTP/1.0\r\nHost: $host\r\n\r\n");
 
 $loop->run();
 
 |