init
This commit is contained in:
40
vendor/react/stream/examples/01-http.php
vendored
Executable file
40
vendor/react/stream/examples/01-http.php
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
<?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();
|
||||
Reference in New Issue
Block a user