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/21-http-server.php | |
parent | 286d643180672f20526f3dc3bd19d7b751e2fa97 (diff) |
Initial Commit
Diffstat (limited to 'assets/php/vendor/react/event-loop/examples/21-http-server.php')
-rw-r--r-- | assets/php/vendor/react/event-loop/examples/21-http-server.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/assets/php/vendor/react/event-loop/examples/21-http-server.php b/assets/php/vendor/react/event-loop/examples/21-http-server.php new file mode 100644 index 0000000..89520ce --- /dev/null +++ b/assets/php/vendor/react/event-loop/examples/21-http-server.php @@ -0,0 +1,36 @@ +<?php + +require __DIR__ . '/../vendor/autoload.php'; + +$loop = React\EventLoop\Factory::create(); + +// start TCP/IP server on localhost:8080 +// for illustration purposes only, should use react/socket instead +$server = stream_socket_server('tcp://127.0.0.1:8080'); +if (!$server) { + exit(1); +} +stream_set_blocking($server, false); + +// wait for incoming connections on server socket +$loop->addReadStream($server, function ($server) use ($loop) { + $conn = stream_socket_accept($server); + $data = "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\nHi\n"; + $loop->addWriteStream($conn, function ($conn) use (&$data, $loop) { + $written = fwrite($conn, $data); + if ($written === strlen($data)) { + fclose($conn); + $loop->removeWriteStream($conn); + } else { + $data = substr($data, $written); + } + }); +}); + +$loop->addPeriodicTimer(5, function () { + $memory = memory_get_usage() / 1024; + $formatted = number_format($memory, 3).'K'; + echo "Current memory usage: {$formatted}\n"; +}); + +$loop->run(); |