This commit is contained in:
2021-02-20 16:23:23 +08:00
parent bc43a71b0c
commit 446c737f81
4 changed files with 32 additions and 16 deletions
+7 -3
View File
@@ -7,6 +7,7 @@ namespace HttpServer\Events;
use Annotation\Route\Socket; use Annotation\Route\Socket;
use HttpServer\Abstracts\Callback; use HttpServer\Abstracts\Callback;
use HttpServer\Route\Node; use HttpServer\Route\Node;
use Snowflake\Abstracts\Config;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Exception\ComponentException; use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake; use Snowflake\Snowflake;
@@ -50,9 +51,12 @@ class OnClose extends Callback
return; return;
} }
$node = $router->tree_search(explode('/', Socket::CLOSE . '::event'), 'sw::socket'); $context = Config::get('router', false, ROUTER_TREE);
if ($context === ROUTER_TREE) {
// $node = $router->search('/' . Socket::CLOSE . '::event', 'sw::socket'); $node = $router->tree_search(explode('/', Socket::CLOSE . '::event'), 'sw::socket');
} else {
$node = $router->search('/' . Socket::CLOSE . '::event', 'sw::socket');
}
if ($node instanceof Node) { if ($node instanceof Node) {
$node->dispatch($server, $fd); $node->dispatch($server, $fd);
} }
+7 -3
View File
@@ -7,6 +7,7 @@ namespace HttpServer\Events;
use Annotation\Route\Socket; use Annotation\Route\Socket;
use Exception; use Exception;
use HttpServer\Abstracts\Callback; use HttpServer\Abstracts\Callback;
use Snowflake\Abstracts\Config;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Exception\ComponentException; use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake; use Snowflake\Snowflake;
@@ -107,8 +108,12 @@ class OnHandshake extends Callback
} }
$router = Snowflake::app()->getRouter(); $router = Snowflake::app()->getRouter();
$node = $router->tree_search(explode('/', Socket::HANDSHAKE . '::event'), 'sw::socket'); $context = Config::get('router', false, ROUTER_TREE);
// $node = $router->search('/' . Socket::HANDSHAKE . '::event', 'sw::socket'); 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) { if ($node === null) {
return $this->disconnect($response, 502); return $this->disconnect($response, 502);
} }
@@ -120,5 +125,4 @@ class OnHandshake extends Callback
} }
} }
+7 -2
View File
@@ -8,6 +8,7 @@ use Annotation\Route\Socket;
use Exception; use Exception;
use HttpServer\Abstracts\Callback; use HttpServer\Abstracts\Callback;
use HttpServer\Http\Context; use HttpServer\Http\Context;
use Snowflake\Abstracts\Config;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Exception\ComponentException; use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake; use Snowflake\Snowflake;
@@ -64,8 +65,12 @@ class OnMessage extends Callback
throw new Exception('Format error.'); throw new Exception('Format error.');
} }
$router = Snowflake::app()->getRouter(); $router = Snowflake::app()->getRouter();
$context = Config::get('router', false, ROUTER_TREE);
$node = $router->tree_search(explode('/', Socket::MESSAGE . '::' . $route), 'sw::socket'); if ($context === ROUTER_TREE) {
$node = $router->tree_search(explode('/', Socket::MESSAGE . '::' . $route), 'sw::socket');
} else {
$node = $router->search('/' . Socket::HANDSHAKE . '::' . $route, 'sw::socket');
}
if ($node === null) { if ($node === null) {
throw new Exception('Page not found.'); throw new Exception('Page not found.');
} }
+11 -8
View File
@@ -80,13 +80,12 @@ class Router extends Application implements RouterInterface
$this->nodes[$method] = []; $this->nodes[$method] = [];
} }
// $useTree = Config::get('router', false, ROUTER_HASH); $useTree = Config::get('router', false, ROUTER_TREE);
// var_dump($useTree); if ($useTree == ROUTER_TREE) {
// if ($useTree == ROUTER_TREE) { return $this->tree($path, $handler, $method);
return $this->tree($path, $handler, $method); } else {
// } else { return $this->hash($path, $handler, $method);
// return $this->hash($path, $handler, $method); }
// }
} }
@@ -500,10 +499,14 @@ class Router extends Application implements RouterInterface
* @param Request $request * @param Request $request
* @return Node|null 树干搜索 * @return Node|null 树干搜索
* 树干搜索 * 树干搜索
* @throws ConfigException
*/ */
private function find_path(Request $request): ?Node private function find_path(Request $request): ?Node
{ {
return $this->Branch_search($request); $useTree = Config::get('router', false, ROUTER_TREE);
if ($useTree === ROUTER_TREE) {
return $this->Branch_search($request);
}
$method = $request->getMethod(); $method = $request->getMethod();
$uri = $request->headers->get('request_uri', '/'); $uri = $request->headers->get('request_uri', '/');