mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-07-23 08:35:35 +08:00
fix stupid bug of rule parsing
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
namespace ZM\Event\Swoole;
|
namespace ZM\Event\Swoole;
|
||||||
|
|
||||||
|
|
||||||
|
use Closure;
|
||||||
use Doctrine\Common\Annotations\AnnotationException;
|
use Doctrine\Common\Annotations\AnnotationException;
|
||||||
use Framework\ZMBuf;
|
use Framework\ZMBuf;
|
||||||
use Swoole\Server;
|
use Swoole\Server;
|
||||||
@@ -11,8 +12,6 @@ use ZM\Annotation\Swoole\SwooleEventAfter;
|
|||||||
use ZM\Annotation\Swoole\SwooleEventAt;
|
use ZM\Annotation\Swoole\SwooleEventAt;
|
||||||
use ZM\Connection\ConnectionManager;
|
use ZM\Connection\ConnectionManager;
|
||||||
use ZM\Event\EventHandler;
|
use ZM\Event\EventHandler;
|
||||||
use ZM\ModBase;
|
|
||||||
use ZM\ModHandleType;
|
|
||||||
use ZM\Utils\ZMUtil;
|
use ZM\Utils\ZMUtil;
|
||||||
|
|
||||||
class WSCloseEvent implements SwooleEvent
|
class WSCloseEvent implements SwooleEvent
|
||||||
@@ -32,7 +31,7 @@ class WSCloseEvent implements SwooleEvent
|
|||||||
*/
|
*/
|
||||||
public function onActivate() {
|
public function onActivate() {
|
||||||
ZMUtil::checkWait();
|
ZMUtil::checkWait();
|
||||||
set_coroutine_params(["server" => $this->server, "fd" => $this->fd]);
|
set_coroutine_params(["server" => $this->server, "fd" => $this->fd, "connection" => ConnectionManager::get($this->fd)]);
|
||||||
foreach(ZMBuf::$events[SwooleEventAt::class] ?? [] as $v) {
|
foreach(ZMBuf::$events[SwooleEventAt::class] ?? [] as $v) {
|
||||||
if(strtolower($v->type) == "close" && $this->parseSwooleRule($v)) {
|
if(strtolower($v->type) == "close" && $this->parseSwooleRule($v)) {
|
||||||
$c = $v->class;
|
$c = $v->class;
|
||||||
@@ -60,6 +59,11 @@ class WSCloseEvent implements SwooleEvent
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function parseSwooleRule($v) {
|
private function parseSwooleRule($v) {
|
||||||
|
switch (explode(":", $v->rule)[0]) {
|
||||||
|
case "connectType": //websocket连接类型
|
||||||
|
if ($v->callback instanceof Closure) return call_user_func($v->callback, ConnectionManager::get($this->fd));
|
||||||
|
break;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user