From d1877d78a7a1644b26eac18870bd741715ec3d7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Fri, 23 Jul 2021 17:12:20 +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/Abstracts/ServerBase.php | 2 +- .../{ServerBase.php => ServerDefaultEvent.php} | 15 +++++++++++---- Server/SInterface/PipeMessage.php | 13 +++++++++++++ Server/server.php | 12 ++++++------ 4 files changed, 31 insertions(+), 11 deletions(-) rename Server/Manager/{ServerBase.php => ServerDefaultEvent.php} (71%) create mode 100644 Server/SInterface/PipeMessage.php diff --git a/HttpServer/Abstracts/ServerBase.php b/HttpServer/Abstracts/ServerBase.php index 02d25565..5d136921 100644 --- a/HttpServer/Abstracts/ServerBase.php +++ b/HttpServer/Abstracts/ServerBase.php @@ -12,7 +12,7 @@ namespace HttpServer\Abstracts; use Swoole\WebSocket\Server; /** - * Class ServerBase + * Class ServerDefaultEvent * @package Snowflake\Snowflake\Server */ abstract class ServerBase extends HttpService diff --git a/Server/Manager/ServerBase.php b/Server/Manager/ServerDefaultEvent.php similarity index 71% rename from Server/Manager/ServerBase.php rename to Server/Manager/ServerDefaultEvent.php index 35343fa4..83ffed05 100644 --- a/Server/Manager/ServerBase.php +++ b/Server/Manager/ServerDefaultEvent.php @@ -4,13 +4,14 @@ namespace Server\Manager; use Server\Abstracts\Server; use Server\Constant; +use Server\SInterface\PipeMessage; /** - * Class ServerBase + * Class ServerDefaultEvent * @package Server\Manager */ -class ServerBase extends Server +class ServerDefaultEvent extends Server { @@ -39,6 +40,12 @@ class ServerBase extends Server */ public function onPipeMessage(\Swoole\Server $server, int $src_worker_id, mixed $message) { + if (is_null($message = unserialize($message))) { + return; + } + if (!is_object($message) || !($message instanceof PipeMessage)) { + return; + } $this->runEvent(Constant::PIPE_MESSAGE, null, [$server, $src_worker_id, $message]); } @@ -48,7 +55,7 @@ class ServerBase extends Server */ public function onBeforeReload(\Swoole\Server $server) { - $this->runEvent(Constant::PIPE_MESSAGE, null, [$server]); + $this->runEvent(Constant::BEFORE_RELOAD, null, [$server]); } @@ -57,7 +64,7 @@ class ServerBase extends Server */ public function onAfterReload(\Swoole\Server $server) { - $this->runEvent(Constant::PIPE_MESSAGE, null, [$server]); + $this->runEvent(Constant::AFTER_RELOAD, null, [$server]); } } diff --git a/Server/SInterface/PipeMessage.php b/Server/SInterface/PipeMessage.php new file mode 100644 index 00000000..06a01840 --- /dev/null +++ b/Server/SInterface/PipeMessage.php @@ -0,0 +1,13 @@ + 1 ], 'events' => [ - Constant::PIPE_MESSAGE => [ServerBase::class, 'onPipeMessage'], - Constant::SHUTDOWN => [ServerBase::class, 'onShutdown'], + Constant::PIPE_MESSAGE => [ServerDefaultEvent::class, 'onPipeMessage'], + Constant::SHUTDOWN => [ServerDefaultEvent::class, 'onShutdown'], Constant::WORKER_START => [ServerWorker::class, 'onWorkerStart'], Constant::WORKER_ERROR => [ServerWorker::class, 'onWorkerError'], Constant::WORKER_EXIT => [ServerWorker::class, 'onWorkerExit'], Constant::WORKER_STOP => [ServerWorker::class, 'onWorkerStop'], Constant::MANAGER_START => [ServerManager::class, 'onManagerStart'], Constant::MANAGER_STOP => [ServerManager::class, 'onManagerStop'], - Constant::BEFORE_RELOAD => [ServerBase::class, 'onBeforeReload'], - Constant::AFTER_RELOAD => [ServerBase::class, 'onAfterReload'], - Constant::START => [ServerBase::class, 'onStart'], + Constant::BEFORE_RELOAD => [ServerDefaultEvent::class, 'onBeforeReload'], + Constant::AFTER_RELOAD => [ServerDefaultEvent::class, 'onAfterReload'], + Constant::START => [ServerDefaultEvent::class, 'onStart'], ], 'ports' => [ [