ReactPHP-EventLoop
事件循环组件
ReactPHP的核心反应器事件循环,可以用于事件I/O。
为了使基于异步的库能够互操作,它们需要使用相同的事件循环。该组件提供了任何库可以定位的公共LoopInterface
。这让他们在同一个循环下使用,通过一个由用户控制的run()
调用。
快速入门实例
这是一个异步HTTP服务,仅用事件循环构建。
$loop = React\EventLoop\Factory::create();
$server = stream_socket_server('tcp://127.0.0.1:8080');
stream_set_blocking($server, false);
$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