From b67f2a304fa5d4fc18944df38be455e53aa20ab2 Mon Sep 17 00:00:00 2001 From: "as2252258@163.com" Date: Sat, 28 Aug 2021 02:26:27 +0800 Subject: [PATCH] 111 --- http-server/Constrict/ResponseEmitter.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/http-server/Constrict/ResponseEmitter.php b/http-server/Constrict/ResponseEmitter.php index 63c631be..bc549e6a 100644 --- a/http-server/Constrict/ResponseEmitter.php +++ b/http-server/Constrict/ResponseEmitter.php @@ -7,6 +7,7 @@ use Exception; use Kiri\Exception\NotFindClassException; use ReflectionException; use Psr\Http\Message\ResponseInterface; +use Server\RequestInterface; use Swoole\Server; @@ -24,6 +25,13 @@ class ResponseEmitter implements Emitter public DownloadEmitter $downloadEmitter; + /** + * @var \Server\RequestInterface + */ + #[Inject(RequestInterface::class)] + public RequestInterface $request; + + /** * @param \Swoole\Http\Response|\Swoole\Http2\Response $response * @param ResponseInterface|\Server\Message\Response $emitter @@ -44,9 +52,17 @@ class ResponseEmitter implements Emitter } } $response->setStatusCode($emitter->getStatusCode()); - $response->header('Run-Time', (time() + microtime(true)) - request()->getStartTime()); + $response->header('Run-Time', sprintf('%.5f', $this->getRunTime())); $response->end($emitter->getBody()); + } + + /** + * @return float + */ + private function getRunTime(): float + { + return microtime(true) - $this->request->getStartTime(); } }