This commit is contained in:
2021-07-23 17:12:20 +08:00
parent 93519c3c57
commit d1877d78a7
4 changed files with 31 additions and 11 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ namespace HttpServer\Abstracts;
use Swoole\WebSocket\Server; use Swoole\WebSocket\Server;
/** /**
* Class ServerBase * Class ServerDefaultEvent
* @package Snowflake\Snowflake\Server * @package Snowflake\Snowflake\Server
*/ */
abstract class ServerBase extends HttpService abstract class ServerBase extends HttpService
@@ -4,13 +4,14 @@ namespace Server\Manager;
use Server\Abstracts\Server; use Server\Abstracts\Server;
use Server\Constant; use Server\Constant;
use Server\SInterface\PipeMessage;
/** /**
* Class ServerBase * Class ServerDefaultEvent
* @package Server\Manager * @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) 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]); $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) 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) public function onAfterReload(\Swoole\Server $server)
{ {
$this->runEvent(Constant::PIPE_MESSAGE, null, [$server]); $this->runEvent(Constant::AFTER_RELOAD, null, [$server]);
} }
} }
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace Server\SInterface;
interface PipeMessage
{
public function process();
}
+6 -6
View File
@@ -3,7 +3,7 @@
use Server\Constant; use Server\Constant;
use Server\HTTPServerListener; use Server\HTTPServerListener;
use Server\Manager\ServerBase; use Server\Manager\ServerDefaultEvent;
use Server\Manager\ServerManager; use Server\Manager\ServerManager;
use Server\TCPServerListener; use Server\TCPServerListener;
use Server\UDPServerListener; use Server\UDPServerListener;
@@ -33,17 +33,17 @@ return [
'tcp_defer_accept' => 1 'tcp_defer_accept' => 1
], ],
'events' => [ 'events' => [
Constant::PIPE_MESSAGE => [ServerBase::class, 'onPipeMessage'], Constant::PIPE_MESSAGE => [ServerDefaultEvent::class, 'onPipeMessage'],
Constant::SHUTDOWN => [ServerBase::class, 'onShutdown'], Constant::SHUTDOWN => [ServerDefaultEvent::class, 'onShutdown'],
Constant::WORKER_START => [ServerWorker::class, 'onWorkerStart'], Constant::WORKER_START => [ServerWorker::class, 'onWorkerStart'],
Constant::WORKER_ERROR => [ServerWorker::class, 'onWorkerError'], Constant::WORKER_ERROR => [ServerWorker::class, 'onWorkerError'],
Constant::WORKER_EXIT => [ServerWorker::class, 'onWorkerExit'], Constant::WORKER_EXIT => [ServerWorker::class, 'onWorkerExit'],
Constant::WORKER_STOP => [ServerWorker::class, 'onWorkerStop'], Constant::WORKER_STOP => [ServerWorker::class, 'onWorkerStop'],
Constant::MANAGER_START => [ServerManager::class, 'onManagerStart'], Constant::MANAGER_START => [ServerManager::class, 'onManagerStart'],
Constant::MANAGER_STOP => [ServerManager::class, 'onManagerStop'], Constant::MANAGER_STOP => [ServerManager::class, 'onManagerStop'],
Constant::BEFORE_RELOAD => [ServerBase::class, 'onBeforeReload'], Constant::BEFORE_RELOAD => [ServerDefaultEvent::class, 'onBeforeReload'],
Constant::AFTER_RELOAD => [ServerBase::class, 'onAfterReload'], Constant::AFTER_RELOAD => [ServerDefaultEvent::class, 'onAfterReload'],
Constant::START => [ServerBase::class, 'onStart'], Constant::START => [ServerDefaultEvent::class, 'onStart'],
], ],
'ports' => [ 'ports' => [
[ [