我想知道,如何在发送响应后关闭reactHP HTTP服务器。
目前我有一个这样的服务器代码:
$loop = Factory::create();
$server = new Server($loop, function (ServerRequestInterface $request) {
var_dump($request);
return new Response(200,
array(
'Content-Type' => 'text/plain'
),
"I got ".$request->getBody()."n");
});
$socket = new ReactSocketServer(8070, $loop);
$server->listen($socket);
$loop->run();
以及执行单个请求的客户端:
$loop = ReactEventLoopFactory::create();
$client = new ReactHttpBrowser($loop);
$client->post(
'http://localhost:8070',
array(
'Content-Type' => 'application/json'
),
json_encode($_GET)
)->then(function (ResponseInterface $response) {
echo (string)$response->getBody();
}, 'printf');
$loop->run();
是否有任何事件可以在响应后用于关闭服务器。我不想使用exit()
,因为在关闭之后,我想在真正退出之前执行其他任务。
ReactPHP核心团队在这里开发,最简单的方法是在$socket
上调用close
。当您这样做时,套接字将停止侦听传入的连接,因此,事件循环将停止。