From 04dabe755ed1b6caf69e2bcd8f037121e6b93620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Thu, 17 Feb 2022 18:45:32 +0800 Subject: [PATCH] modify plugin name --- composer.json | 6 +- kiri-gateway/Collector.php | 14 -- kiri-gateway/GatewayServer.php | 23 --- kiri-gateway/HashMap.php | 35 ----- kiri-websocket-server/FdCollector.php | 56 -------- kiri-websocket-server/Sender.php | 136 ------------------ kiri-websocket-server/Server.php | 139 ------------------- kiri-websocket-server/WebSocketInterface.php | 47 ------- 8 files changed, 2 insertions(+), 454 deletions(-) delete mode 100644 kiri-gateway/Collector.php delete mode 100644 kiri-gateway/GatewayServer.php delete mode 100644 kiri-gateway/HashMap.php delete mode 100644 kiri-websocket-server/FdCollector.php delete mode 100644 kiri-websocket-server/Sender.php delete mode 100644 kiri-websocket-server/Server.php delete mode 100644 kiri-websocket-server/WebSocketInterface.php diff --git a/composer.json b/composer.json index 3055e20f..0cdf02ce 100644 --- a/composer.json +++ b/composer.json @@ -28,16 +28,14 @@ "psr/http-server-middleware": "1.0.1", "game-worker/kiri-event": "~v2.0", "game-worker/kiri-container": "~v1.0", - "ext-inotify": "*" + "ext-inotify": "*", + "ext-pcntl": "*" }, "autoload": { "psr-4": { "Kiri\\": "kiri-engine/", - "Kiri\\Gateway\\": "kiri-gateway/", - "Kiri\\Websocket\\": "kiri-websocket-server/", "Gii\\": "kiri-gii/", "Kiri\\Annotation\\": "kiri-annotation/", - "Kiri\\Server\\": "kiri-server/", "Kiri\\Task\\": "kiri-task/" }, "files": [ diff --git a/kiri-gateway/Collector.php b/kiri-gateway/Collector.php deleted file mode 100644 index 5183a821..00000000 --- a/kiri-gateway/Collector.php +++ /dev/null @@ -1,14 +0,0 @@ -fds->put('fd_' . $fd, $response); - } - - - /** - * @param int $fd - * @return bool - */ - #[Pure] public function has(int $fd): bool - { - return $this->fds->has('fd_' . $fd); - } - - /** - * @param int $fd - * @return ?Response - */ - #[Pure] public function get(int $fd): ?Response - { - return $this->fds->get('fd_' . $fd); - } - - /** - * @param int $fd - * @return void - */ - public function remove(int $fd) - { - $this->fds->del('fd_' . $fd); - } - -} diff --git a/kiri-websocket-server/Sender.php b/kiri-websocket-server/Sender.php deleted file mode 100644 index 71da0b03..00000000 --- a/kiri-websocket-server/Sender.php +++ /dev/null @@ -1,136 +0,0 @@ -collector = $this->getContainer()->get(FdCollector::class); - } - - - /** - * @param AliasServer|Server $server - */ - public function setServer(mixed $server): void - { - $this->server = $server; - } - - - /** - * @param int $fd - * @param mixed $data - * @param int $opcode - * @param int $flags - * @return bool - */ - public function push(int $fd, string $data, int $opcode = WEBSOCKET_OPCODE_TEXT, int $flags = SWOOLE_WEBSOCKET_FLAG_FIN): bool - { - if (!$this->isEstablished($fd)) { - return false; - } - if ($this->server instanceof Server) { - return $this->server->push($fd, $data, $opcode, $flags); - } - - $response = $this->collector->get($fd); - if (!empty($response)) { - return $response->push($data, $opcode, $flags); - } - return false; - } - - - /** - * @param $fd - * @param $reactor_id - * @return array|null - */ - public function connection_info($fd, $reactor_id = null): ?array - { - if ($this->server instanceof Server) { - return $this->server->getClientInfo($fd, $reactor_id); - } - if ($this->server->exist($fd)) { - return ['websocket_status' => 1]; - } - return null; - } - - - /** - * @param int $fd - * @param int $code - * @param string $reason - * @return bool - */ - public function disconnect(int $fd, int $code = SWOOLE_WEBSOCKET_CLOSE_NORMAL, string $reason = ''): bool - { - if (!$this->isEstablished($fd)) { - return false; - } - if ($this->server instanceof Server) { - return $this->server->disconnect($fd, $code, $reason); - } - return $this->server->close($fd, $reason); - } - - - /** - * @param int $fd - * @return bool - */ - public function isEstablished(int $fd): bool - { - if (!$this->exist($fd)) { - return false; - } - - if ($this->server instanceof Server) { - return $this->server->isEstablished($fd); - } - return true; - } - - - /** - * @param int $fd - * @return bool - */ - public function exist(int $fd): bool - { - if ($this->server instanceof Server) { - return $this->server->exist($fd); - } - $collector = Kiri::getContainer()->get(FdCollector::class); - return $collector->has($fd); - } - -} diff --git a/kiri-websocket-server/Server.php b/kiri-websocket-server/Server.php deleted file mode 100644 index 3e7d5f20..00000000 --- a/kiri-websocket-server/Server.php +++ /dev/null @@ -1,139 +0,0 @@ -getContainer(); - - $this->router = $container->get(DataGrip::class)->get('ws'); - $handler = $this->router->find('/', 'GET'); - - $this->collector = $container->get(FdCollector::class); - - $this->sender = $container->get(Sender::class); - if ($container->has(SwooleServerInterface::class)) { - $this->sender->setServer($container->get(SwooleServerInterface::class)); - } - if (is_int($handler) || is_null($handler)) { - return; - } - $this->callback = $handler->callback[0]; - } - - - /** - * @param int $fd - */ - public function onClose(int $fd): void - { - $this->collector->remove($fd); - if (!$this->sender->isEstablished($fd)) { - return; - } - if ($this->callback instanceof OnCloseInterface) { - $this->callback->onClose($fd); - } - } - - - /** - * @param Request $request - * @param Response $response - */ - public function onHandshake(Request $request, Response $response): void - { - try { - $secWebSocketKey = $request->header['sec-websocket-key']; - $patten = '#^[+/0-9A-Za-z]{21}[AQgw]==$#'; - if (preg_match($patten, $secWebSocketKey) === 0 || strlen(base64_decode($secWebSocketKey)) !== 16) { - throw new Exception('protocol error.', 500); - } - $key = base64_encode(sha1($request->header['sec-websocket-key'] . self::SHA1_KEY, true)); - $headers = [ - 'Upgrade' => 'websocket', - 'Connection' => 'Upgrade', - 'Sec-Websocket-Accept' => $key, - 'Sec-Websocket-Version' => '13', - ]; - if (isset($request->header['sec-websocket-protocol'])) { - $headers['Sec-Websocket-Protocol'] = $request->header['sec-websocket-protocol']; - } - foreach ($headers as $key => $val) { - $response->header($key, $val); - } - - if ($this->callback instanceof OnHandshakeInterface) { - $this->callback->onHandshake($request, $response); - } else { - $response->setStatusCode(101, 'connection success.'); - $response->end(); - - if ($this->callback instanceof OnOpenInterface) { - $this->callback->onOpen($request); - } - - } - } catch (\Throwable $throwable) { - $response->status(4000 + $throwable->getCode(), $throwable->getMessage()); - $response->end(); - } - } - - - /** - * @param Frame $frame - */ - public function onMessage(Frame $frame): void - { - if ($frame->opcode == 0x08) { - $this->collector->remove($frame->fd); - } else { - if (!($this->callback instanceof OnMessageInterface)) { - return; - } - $this->callback->onMessage($frame); - } - } -} diff --git a/kiri-websocket-server/WebSocketInterface.php b/kiri-websocket-server/WebSocketInterface.php deleted file mode 100644 index 3a856afb..00000000 --- a/kiri-websocket-server/WebSocketInterface.php +++ /dev/null @@ -1,47 +0,0 @@ -