From 3b730fb2b321e75e0322c39632b90480c1e07137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Mon, 2 Nov 2020 14:55:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpServer/Events/OnClose.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/HttpServer/Events/OnClose.php b/HttpServer/Events/OnClose.php index aa769b4a..99683e42 100644 --- a/HttpServer/Events/OnClose.php +++ b/HttpServer/Events/OnClose.php @@ -33,7 +33,7 @@ class OnClose extends Callback { try { [$manager, $name] = $this->resolve($server, $fd); - if (!$manager->has($name)) { + if (empty($manager) || !$manager->has($name)) { return; } $manager->runWith($name, [$fd]); @@ -57,14 +57,20 @@ class OnClose extends Callback */ public function resolve($server, $fd) { - if (!($server instanceof WServer)) { - return [null, null]; + var_dump($server); + if ($server instanceof WServer) { + if (!$server->isEstablished($fd)) { + return [null, null]; + } + $manager = Snowflake::app()->annotation->get('websocket'); + $name = $manager->getName(AWebsocket::CLOSE); + } else if ($server instanceof HServer) { + $manager = Snowflake::app()->annotation->get('http'); + $name = $manager->getName(Annotation::CLOSE); + } else { + $manager = Snowflake::app()->annotation->get('tcp'); + $name = $manager->getName(Tcp::CLOSE); } - if (!$server->isEstablished($fd)) { - return [null, null]; - } - $manager = Snowflake::app()->annotation->get('websocket'); - $name = $manager->getName(AWebsocket::CLOSE); return [$manager, $name]; }