--TEST-- swoole_http_client: keepalive --SKIPIF-- --FILE-- parentFunc = function ($pid) { echo file_get_contents("http://127.0.0.1:9501/keep"); echo file_get_contents("http://127.0.0.1:9501/notkeep"); swoole_process::kill($pid); }; $pm->childFunc = function () use ($pm) { $http = new swoole_http_server("127.0.0.1", 9501, SWOOLE_BASE); $http->set(array( 'worker_num' => 1, 'log_file' => '/dev/null' )); $http->on("WorkerStart", function (\swoole_server $serv) { /** * @var $pm ProcessManager */ global $pm; if ($pm) { $pm->wakeup(); } }); $http->on('request', function ($request, swoole_http_response $response) use ($http) { $route = $request->server['request_uri']; if ($route == '/info') { $response->end($request->header['connection']); return; } elseif ($route == '/keep') { $cli = new swoole_http_client('127.0.0.1', 9501); $cli->set(array( 'keep_alive' => 1, )); $cli->setHeaders(array('User-Agent' => "swoole")); $cli->on('close', function ($cli) use ($response) { }); $cli->on('error', function ($cli) use ($response) { echo "error"; $response->end("error"); }); $cli->get('/info', function ($cli) use ($response) { $response->end($cli->body . "\n"); $cli->close(); }); $http->cli = $cli; } elseif ($route == '/notkeep') { $cli = new swoole_http_client('127.0.0.1', 9501); $cli->set(array( 'keep_alive' => 0, )); $cli->setHeaders(array('User-Agent' => "swoole")); $cli->on('close', function ($cli) use ($response) { }); $cli->on('error', function ($cli) use ($response) { echo "error"; $response->end("error"); }); $cli->get('/info', function ($cli) use ($response) { $response->end($cli->body . "\n"); }); } }); $http->start(); }; $pm->childFirst(); $pm->run(); ?> Done --EXPECTREGEX-- keep-alive closed Done.* --CLEAN--