resolve($server, $fd); if (!$manager->has($name)) { return; } $manager->runWith($name, [$fd]); } catch (\Throwable $exception) { $this->addError($exception); } finally { $event = Snowflake::app()->event; $event->trigger(Event::RELEASE_ALL); $logger = Snowflake::app()->getLogger(); $logger->insert(); } } /** * @param $server * @param $fd * @return array|null * @throws Exception */ public function resolve($server, $fd) { if (!($server instanceof WServer)) { return [null, null]; } if (!$server->isEstablished($fd)) { return [null, null]; } $manager = Snowflake::app()->annotation->get('websocket'); $name = $manager->getName(AWebsocket::CLOSE); return [$manager, $name]; } }