Files
kiri-http-server/Handler/OnPipeMessage.php
T
2025-12-31 00:19:28 +08:00

39 lines
944 B
PHP

<?php
namespace Kiri\Server\Handler;
use Kiri;
use Kiri\Server\Abstracts\Server;
use Kiri\Server\Contract\OnPipeMessageInterface;
/**
*
*/
class OnPipeMessage extends Server
{
/**
* @param \Swoole\Server $server
* @param int $src_worker_id
* @param mixed $message
* @throws
*/
public function onPipeMessage(\Swoole\Server $server, int $src_worker_id, mixed $message): void
{
try {
if (is_string($message)) {
$message = unserialize($message);
}
if (!is_object($message) || !($message instanceof OnPipeMessageInterface)) {
return;
}
call_user_func([$message, 'process'], $server, $src_worker_id);
} catch (\Throwable $throwable) {
\Kiri::getLogger()->json_log($throwable, ['src_worker_id' => $src_worker_id, 'message' => $message]);
}
}
}