在ReactPHP中发送响应后关闭服务器



我想知道,如何在发送响应后关闭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。当您这样做时,套接字将停止侦听传入的连接,因此,事件循环将停止。

最新更新