1212
1313namespace Hyperf \JsonRpc ;
1414
15- use Hyperf \Context \RequestContext ;
16- use Hyperf \Context \ResponseContext ;
1715use Hyperf \Contract \PackerInterface ;
1816use Hyperf \ExceptionHandler \ExceptionHandlerDispatcher ;
19- use Hyperf \HttpMessage \Server \Request as Psr7Request ;
20- use Hyperf \HttpMessage \Server \Response as Psr7Response ;
2117use Hyperf \HttpServer \Contract \CoreMiddlewareInterface ;
2218use Hyperf \HttpServer \ResponseEmitter ;
2319use Hyperf \HttpServer \Server ;
2824use Hyperf \RpcServer \RequestDispatcher ;
2925use Psr \Container \ContainerInterface ;
3026use Psr \Http \Message \RequestInterface ;
27+ use Swow \Psr7 \Message \ResponsePlusInterface ;
28+ use Swow \Psr7 \Message \ServerRequestPlusInterface ;
3129
3230use function Hyperf \Support \make ;
3331
@@ -69,9 +67,12 @@ protected function createCoreMiddleware(): CoreMiddlewareInterface
6967
7068 protected function initRequestAndResponse ($ request , $ response ): array
7169 {
72- ResponseContext::set ($ psr7Response = new Psr7Response ());
73- // Initialize PSR-7 Request and Response objects.
74- $ psr7Request = Psr7Request::loadFromSwooleRequest ($ request );
70+ /**
71+ * @var ServerRequestPlusInterface $psr7Request
72+ * @var ResponsePlusInterface $psr7Response
73+ */
74+ [$ psr7Request , $ psr7Response ] = parent ::initRequestAndResponse ($ request , $ response );
75+
7576 if (! $ this ->isHealthCheck ($ psr7Request )) {
7677 if (! str_contains ($ psr7Request ->getHeaderLine ('content-type ' ), 'application/json ' )) {
7778 $ psr7Response = $ this ->responseBuilder ->buildErrorResponse ($ psr7Request , ResponseBuilder::PARSE_ERROR );
@@ -82,15 +83,14 @@ protected function initRequestAndResponse($request, $response): array
8283 $ psr7Response = $ this ->responseBuilder ->buildErrorResponse ($ psr7Request , ResponseBuilder::INVALID_REQUEST );
8384 }
8485 }
86+
8587 $ psr7Request = $ psr7Request ->setUri ($ psr7Request ->getUri ()->withPath ($ content ['method ' ] ?? '/ ' ))
8688 ->setParsedBody ($ content ['params ' ] ?? null )
8789 ->setAttribute ('data ' , $ content ?? [])
8890 ->setAttribute ('request_id ' , $ content ['id ' ] ?? null );
8991
9092 $ this ->getContext ()->setData ($ content ['context ' ] ?? []);
9193
92- RequestContext::set ($ psr7Request );
93- ResponseContext::set ($ psr7Response );
9494 return [$ psr7Request , $ psr7Response ];
9595 }
9696
0 commit comments