From 2aca68c6ec8766d925db57e2f258d49a9f260405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Wed, 3 Mar 2021 13:44:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpServer/Events/OnHandshake.php | 15 +++++++-------- HttpServer/Route/Router.php | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/HttpServer/Events/OnHandshake.php b/HttpServer/Events/OnHandshake.php index 4ac4e740..3eb66faf 100644 --- a/HttpServer/Events/OnHandshake.php +++ b/HttpServer/Events/OnHandshake.php @@ -7,6 +7,7 @@ namespace HttpServer\Events; use Annotation\Route\Socket; use Exception; use HttpServer\Abstracts\Callback; +use HttpServer\Http\Request; use Snowflake\Abstracts\Config; use Snowflake\Event; use Snowflake\Exception\ComponentException; @@ -108,14 +109,12 @@ class OnHandshake extends Callback } $router = Snowflake::app()->getRouter(); - $context = Config::get('router', false, ROUTER_TREE); - var_dump($context); - if ($context === ROUTER_TREE) { - $node = $router->tree_search(explode('/', Socket::HANDSHAKE . '::event'), 'sw::socket'); - } else { - $node = $router->search('/' . Socket::HANDSHAKE . '::event', 'sw::socket'); - } - if ($node === null) { + $sRequest = Request::create($request); + $sRequest->uri = '/' . Socket::HANDSHAKE . '::event'; + $sRequest->headers->replace('request_method', 'sw::socket'); + $sRequest->parseUri();; + + if (($node = $router->find_path($sRequest)) === null) { return $this->disconnect($response, 502); } return $node->dispatch($request, $response); diff --git a/HttpServer/Route/Router.php b/HttpServer/Route/Router.php index 94bf081a..a414f572 100644 --- a/HttpServer/Route/Router.php +++ b/HttpServer/Route/Router.php @@ -500,7 +500,7 @@ class Router extends HttpService implements RouterInterface * 树干搜索 * @throws ConfigException */ - private function find_path(Request $request): ?Node + public function find_path(Request $request): ?Node { $useTree = Config::get('router', false, ROUTER_TREE); if ($useTree === ROUTER_TREE) {