From 81130960d30dd5d3ec4c3d91721de7aacee86ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Mon, 31 Aug 2020 14:53:52 +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 --- http-server/ServerManager.php | 39 ++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/http-server/ServerManager.php b/http-server/ServerManager.php index fb0f8dee..856711dc 100644 --- a/http-server/ServerManager.php +++ b/http-server/ServerManager.php @@ -21,24 +21,29 @@ class ServerManager */ public static function create($pool, $process, $application, $workerId) { - if (is_string($process) && class_exists($process)) { - return static::createProcess($process, $application, $pool, $workerId); + try { + if (is_string($process) && class_exists($process)) { + return static::createProcess($process, $application, $pool, $workerId); + } + [$category, $config, $handlers, $settings] = $process; + $server = new $category[1](...static::parameter($application, $config, $category)); + $server->set($settings ?? [], $pool, $handlers, $config); + static::notice($application, $workerId, $config); + if (property_exists($server, 'pack')) { + $server->pack = $config['message']['pack'] ?? function ($data) { + return $data; + }; + } + if (property_exists($server, 'unpack')) { + $server->unpack = $config['message']['unpack'] ?? function ($data) { + return $data; + }; + } + return $server->start(); + } catch (Exception $exception) { + echo $exception->getMessage() . PHP_EOL; + return $pool->shutdown(); } - [$category, $config, $handlers, $settings] = $process; - $server = new $category[1](...static::parameter($application, $config, $category)); - $server->set($settings ?? [], $pool, $handlers, $config); - static::notice($application, $workerId, $config); - if (property_exists($server, 'pack')) { - $server->pack = $config['message']['pack'] ?? function ($data) { - return $data; - }; - } - if (property_exists($server, 'unpack')) { - $server->unpack = $config['message']['unpack'] ?? function ($data) { - return $data; - }; - } - return $server->start(); }