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;
/**
* Class ServerBase
* Class ServerDefaultEvent
* @package Snowflake\Snowflake\Server
*/
abstract class ServerBase extends HttpService
@@ -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]);
}
}
+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\HTTPServerListener;
use Server\Manager\ServerBase;
use Server\Manager\ServerDefaultEvent;
use Server\Manager\ServerManager;
use Server\TCPServerListener;
use Server\UDPServerListener;
@@ -33,17 +33,17 @@ return [
'tcp_defer_accept' => 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' => [
[