From 971f03ae0f7c9da65758405b5ba52314b818035e Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Sat, 26 Mar 2022 14:51:25 +0800 Subject: [PATCH] Fix type convert error --- src/ZM/Command/Server/ServerStopCommand.php | 2 +- src/ZM/Event/SwooleEvent/OnMessage.php | 7 ++----- src/ZM/Utils/SignalListener.php | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/ZM/Command/Server/ServerStopCommand.php b/src/ZM/Command/Server/ServerStopCommand.php index 233fe6de..165faad8 100644 --- a/src/ZM/Command/Server/ServerStopCommand.php +++ b/src/ZM/Command/Server/ServerStopCommand.php @@ -33,7 +33,7 @@ class ServerStopCommand extends DaemonCommand $name = explode('.', $file); if (end($name) == 'pid') { $pid = file_get_contents($file_path . '/' . $file); - Process::kill($pid, SIGKILL); + Process::kill((int) $pid, SIGKILL); } elseif ($file === 'master.json') { $json = json_decode(file_get_contents($file_path . '/' . $file), true); Process::kill($json['pid'], SIGKILL); diff --git a/src/ZM/Event/SwooleEvent/OnMessage.php b/src/ZM/Event/SwooleEvent/OnMessage.php index d1ff6538..56d803bc 100644 --- a/src/ZM/Event/SwooleEvent/OnMessage.php +++ b/src/ZM/Event/SwooleEvent/OnMessage.php @@ -31,11 +31,8 @@ class OnMessage implements SwooleEvent $conn = ManagerGM::get($frame->fd); set_coroutine_params(['server' => $server, 'frame' => $frame, 'connection' => $conn]); $dispatcher1 = new EventDispatcher(OnMessageEvent::class); - $dispatcher1->setRuleFunction(function ($v) { - if ($v->getRule() == '') { - return true; - } - return eval('return ' . $v->getRule() . ';'); + $dispatcher1->setRuleFunction(function ($v) use ($conn) { + return $v->connect_type === $conn->getName() && ($v->getRule() === '' || eval('return ' . $v->getRule() . ';')); }); $dispatcher = new EventDispatcher(OnSwooleEvent::class); diff --git a/src/ZM/Utils/SignalListener.php b/src/ZM/Utils/SignalListener.php index ecd7139f..17cafe4e 100644 --- a/src/ZM/Utils/SignalListener.php +++ b/src/ZM/Utils/SignalListener.php @@ -95,7 +95,7 @@ class SignalListener $name = explode('.', $file); if (end($name) == 'pid' && $name[0] !== 'manager') { $pid = file_get_contents($file_path . '/' . $file); - Process::kill($pid, SIGKILL); + Process::kill((int) $pid, SIGKILL); } unlink($file_path . '/' . $file); }