2019-09-06 23:53:10 +08:00

86 lines
2.1 KiB
PHP
Executable File

<?php
$http = new swoole_http_server("127.0.0.1", 9501, SWOOLE_BASE);
$http->set(array(
'log_file' => '/dev/null',
"http_parse_post" => 1,
"upload_tmp_dir" => "/tmp",
));
$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)
{
$route = $request->server['request_uri'];
if ($route == '/info')
{
$response->end($request->header['user-agent']);
return;
}
elseif ($route == '/cookies')
{
$response->end(@json_encode($request->cookie));
return;
}
elseif ($route == '/get')
{
$response->end(@json_encode($request->get));
return;
}
elseif ($route == '/post')
{
$response->end(@json_encode($request->post));
return;
}
elseif ($route == '/get_file')
{
$response->sendfile(TEST_IMAGE);
return;
}
elseif ($route == '/upload_file')
{
$response->end(json_encode([
'files' => $request->files,
'md5' => md5_file($request->files['test_jpg']['tmp_name']),
'post' => $request->post
]));
return;
}
elseif ($route == '/gzip')
{
$response->gzip(5);
Swoole\Async::readFile(__DIR__ . '/../../../README.md', function ($file, $content) use ($response) {
$response->end($content);
});
return;
}
else
{
$cli = new swoole_http_client('127.0.0.1', 9501);
$cli->set(array(
'timeout' => 0.3,
));
$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->start();