From c3b67d59694ae2d93c9f73efc03ba95efa95e491 Mon Sep 17 00:00:00 2001 From: "as2252258@163.com" Date: Tue, 4 May 2021 01:33:08 +0800 Subject: [PATCH] modify --- HttpServer/Events/OnClose.php | 12 +++++------- HttpServer/Events/OnConnect.php | 5 ++--- HttpServer/Events/OnFinish.php | 5 ++--- HttpServer/Events/OnHandshake.php | 5 ++--- HttpServer/Events/OnMessage.php | 16 ++++++---------- HttpServer/Events/OnPacket.php | 5 ++--- HttpServer/Events/OnPipeMessage.php | 4 +++- HttpServer/Events/OnReceive.php | 5 ++--- HttpServer/Events/OnRequest.php | 5 ++--- HttpServer/Events/OnTask.php | 5 ++--- 10 files changed, 28 insertions(+), 39 deletions(-) diff --git a/HttpServer/Events/OnClose.php b/HttpServer/Events/OnClose.php index f84298b3..386f2628 100644 --- a/HttpServer/Events/OnClose.php +++ b/HttpServer/Events/OnClose.php @@ -27,15 +27,13 @@ class OnClose extends Callback public function onHandler(Server $server, int $fd) { try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_RELEASES); - }); - $clientInfo = $server->getClientInfo($fd); - if (!Event::exists(($name = $this->getName($clientInfo)))) { + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + $clientInfo = $server->getClientInfo($fd); + if (!Event::exists(($name = $this->getName($clientInfo)))) { return; } - Event::trigger($name, [$server, $fd]); - } catch (\Throwable $exception) { + Event::trigger($name, [$server, $fd]); + } catch (\Throwable $exception) { $this->addError($exception, 'throwable'); } } diff --git a/HttpServer/Events/OnConnect.php b/HttpServer/Events/OnConnect.php index eef46204..f92900bb 100644 --- a/HttpServer/Events/OnConnect.php +++ b/HttpServer/Events/OnConnect.php @@ -26,9 +26,8 @@ class OnConnect extends Callback public function onHandler(Server $server, int $fd, int $reactorId) { try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_RELEASES); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + if (($clientInfo = $server->getClientInfo($fd, $reactorId)) === false) { return; } diff --git a/HttpServer/Events/OnFinish.php b/HttpServer/Events/OnFinish.php index 65635e08..fc0c2af2 100644 --- a/HttpServer/Events/OnFinish.php +++ b/HttpServer/Events/OnFinish.php @@ -27,9 +27,8 @@ class OnFinish extends Callback public function onHandler(Server $server, $task_id, $data) { try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_RELEASES); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + fire(Event::TASK_FINISH, [$task_id, $data]); } catch (\Throwable $exception) { $this->addError($exception, 'task'); diff --git a/HttpServer/Events/OnHandshake.php b/HttpServer/Events/OnHandshake.php index 3d3727be..42b396eb 100644 --- a/HttpServer/Events/OnHandshake.php +++ b/HttpServer/Events/OnHandshake.php @@ -97,9 +97,8 @@ class OnHandshake extends Callback public function onHandler(SRequest $request, SResponse $response): void { try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_CLEAN); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + $this->execute($request, $response); } catch (\Throwable $exception) { $this->addError($exception, 'throwable'); diff --git a/HttpServer/Events/OnMessage.php b/HttpServer/Events/OnMessage.php index e6ce822a..d9a824ad 100644 --- a/HttpServer/Events/OnMessage.php +++ b/HttpServer/Events/OnMessage.php @@ -38,20 +38,14 @@ class OnMessage extends Callback public function onHandler(Server $server, Frame $frame) { try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_CLEAN); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); if ($frame->opcode === 0x08) { return; } - $clientInfo = $server->getClientInfo($frame->fd); - if (!Event::exists(($name = $this->getName($clientInfo)))) { - return; - } - Event::trigger($name, [$frame, $server]); + Event::trigger($this->getName($server, $frame), [$frame, $server]); } catch (\Throwable $exception) { $this->addError($exception, 'websocket'); - if (!swoole()->exist($frame->fd)) { + if (!swoole()->isEstablished($frame->fd)) { return; } $server->send($frame->fd, $exception->getMessage()); @@ -63,8 +57,10 @@ class OnMessage extends Callback * @param $clientInfo * @return string */ - private function getName($clientInfo): string + private function getName(Server $server, Frame $frame): string { + $clientInfo = $server->getClientInfo($frame->fd); + return 'listen ' . $clientInfo['server_port'] . ' ' . Event::SERVER_MESSAGE; } diff --git a/HttpServer/Events/OnPacket.php b/HttpServer/Events/OnPacket.php index 700f780c..7dc090a9 100644 --- a/HttpServer/Events/OnPacket.php +++ b/HttpServer/Events/OnPacket.php @@ -36,9 +36,8 @@ class OnPacket extends Callback { [$host, $port] = [$clientInfo['address'], $clientInfo['port']]; try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_RELEASES); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + $request = $this->_request($clientInfo, $server, $data); $router = Snowflake::app()->getRouter(); diff --git a/HttpServer/Events/OnPipeMessage.php b/HttpServer/Events/OnPipeMessage.php index 1629335b..ddab9f4f 100644 --- a/HttpServer/Events/OnPipeMessage.php +++ b/HttpServer/Events/OnPipeMessage.php @@ -28,7 +28,9 @@ class OnPipeMessage extends Callback */ public function onHandler(Server $server, int $src_worker_id, $swollen_universalize) { - match ($swollen_universalize['action'] ?? null) { + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + + match ($swollen_universalize['action'] ?? null) { 'kafka' => $this->onKafkaWorker($swollen_universalize), 'crontab' => $this->onCrontabWorker($swollen_universalize), default => $this->onMessageWorker($server, $src_worker_id, $swollen_universalize) diff --git a/HttpServer/Events/OnReceive.php b/HttpServer/Events/OnReceive.php index ab5a9e9d..55839815 100644 --- a/HttpServer/Events/OnReceive.php +++ b/HttpServer/Events/OnReceive.php @@ -48,9 +48,8 @@ class OnReceive extends Callback public function onHandler(Server $server, int $fd, int $reID, string $data): mixed { try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_RELEASES); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + $request = $this->_request($fd, $data, $reID); if (($node = $this->router->find_path($request)) === null) { return $server->send($fd, Json::encode(['state' => 404])); diff --git a/HttpServer/Events/OnRequest.php b/HttpServer/Events/OnRequest.php index b1346366..2f583b3c 100644 --- a/HttpServer/Events/OnRequest.php +++ b/HttpServer/Events/OnRequest.php @@ -51,9 +51,8 @@ class OnRequest extends Callback public function onHandler(Request $request, Response $response): mixed { try { - Coroutine::defer(function () { - fire(Event::SYSTEM_RESOURCE_RELEASES); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + /** @var HResponse $response */ [$request, $response] = OnRequest::createContext($request, $response); diff --git a/HttpServer/Events/OnTask.php b/HttpServer/Events/OnTask.php index 2ec8c931..b21462a6 100644 --- a/HttpServer/Events/OnTask.php +++ b/HttpServer/Events/OnTask.php @@ -102,9 +102,8 @@ class OnTask extends Callback private function runTaskHandler($data): ?array { try { - defer(function () { - fire(Event::SYSTEM_RESOURCE_CLEAN); - }); + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + $serialize = $this->before($data); if ($serialize === null) { throw new Exception('unpack error.');