Files
kiri-core/HttpServer/Events/OnPipeMessage.php
T
as2252258@163.com 074d6a05cb modify
2021-04-07 02:38:29 +08:00

44 lines
1017 B
PHP

<?php
declare(strict_types=1);
namespace HttpServer\Events;
use Annotation\Loader;
use Exception;
use HttpServer\Abstracts\Callback;
use Snowflake\Event;
use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake;
use Swoole\Server;
/**
* Class OnPipeMessage
* @package HttpServer\Events
*/
class OnPipeMessage extends Callback
{
/**
* @param Server $server
* @param int $src_worker_id
* @param $message
* @throws ComponentException
* @throws Exception
*/
public function onHandler(Server $server, int $src_worker_id, $message)
{
if ($message instanceof Loader) {
if ($src_worker_id > $server->setting['worker_num']) {
$message->loadByDirectory(MODEL_PATH);
} else {
$message->loadByDirectory(APP_PATH);
}
} else {
$events = Snowflake::app()->getEvent();
$events->trigger(Event::PIPE_MESSAGE, [$server, $src_worker_id, $message]);
}
}
}