Skip to content

Commit 5361c23

Browse files
committed
modify: 更新 Swoole onRequest 回调中 Response 类型
1 parent 788178d commit 5361c23

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

src/Http/Runtime/Swoole/EventHandler.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@ class EventHandler extends RuntimeEventHandler
2020
*/
2121
public function onRequest(SwooleRequest $swRequest, SwooleResponse $swResponse): void
2222
{
23-
/** @var Response $response */
24-
$response = $this->createResponse($swResponse);
25-
2623
try {
2724
$response = call_user_func(
2825
$this->handleRequest,
29-
$this->createContext($this->createServerRequest($swRequest), $response)
26+
$this->createContext($this->createServerRequest($swRequest), $this->createResponse($swResponse))
3027
);
3128
} catch (Throwable $e) {
3229
$response = $response->withStatus(500);
@@ -35,7 +32,16 @@ public function onRequest(SwooleRequest $swRequest, SwooleResponse $swResponse):
3532
);
3633
}
3734

38-
$response->send();
35+
/** @var Response $response */
36+
// 设置响应 header 信息
37+
foreach ($response->getHeaders() as $name => $value) {
38+
$swResponse->header($name, implode(', ', $value));
39+
}
40+
41+
// HTTP statusCode
42+
$swResponse->status($response->getStatusCode());
43+
// 响应数据给客户端
44+
$swResponse->end($response->getBody()->__toString());
3945
}
4046

4147
public function onTask(SwooleServer $server, ServerTask $task)

src/Http/Runtime/Swoole/MessageHelperTrait.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
use Psr\Http\Message\ResponseInterface;
88
use Psr\Http\Message\ServerRequestInterface;
99
use Swoole\Http\Request as SwooleRequest;
10-
use Swoole\Http\Response as SwooleResponse;
11-
1210

1311
trait MessageHelperTrait
1412
{
@@ -36,8 +34,8 @@ protected function createServerRequest(SwooleRequest $request): ServerRequestInt
3634
/**
3735
* 生成 Response 对象
3836
*/
39-
protected function createResponse(SwooleResponse $response): ResponseInterface
37+
protected function createResponse(): ResponseInterface
4038
{
41-
return (new Response())->withSwooleResponse($response);
39+
return new Response();
4240
}
4341
}

0 commit comments

Comments
 (0)