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 HttpServer\Abstracts\Callback;
use HttpServer\Route\Node;
use Snowflake\Abstracts\Config;
use Snowflake\Event;
use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake;
@@ -50,9 +51,12 @@ class OnClose extends Callback
return;
}
$node = $router->tree_search(explode('/', Socket::CLOSE . '::event'), 'sw::socket');
// $node = $router->search('/' . Socket::CLOSE . '::event', 'sw::socket');
$context = Config::get('router', false, ROUTER_TREE);
if ($context === ROUTER_TREE) {
$node = $router->tree_search(explode('/', Socket::CLOSE . '::event'), 'sw::socket');
} else {
$node = $router->search('/' . Socket::CLOSE . '::event', 'sw::socket');
}
if ($node instanceof Node) {
$node->dispatch($server, $fd);
}
+7 -3
View File
@@ -7,6 +7,7 @@ namespace HttpServer\Events;
use Annotation\Route\Socket;
use Exception;
use HttpServer\Abstracts\Callback;
use Snowflake\Abstracts\Config;
use Snowflake\Event;
use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake;
@@ -107,8 +108,12 @@ class OnHandshake extends Callback
}
$router = Snowflake::app()->getRouter();
$node = $router->tree_search(explode('/', Socket::HANDSHAKE . '::event'), 'sw::socket');
// $node = $router->search('/' . Socket::HANDSHAKE . '::event', 'sw::socket');
$context = Config::get('router', false, ROUTER_TREE);
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) {
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 HttpServer\Abstracts\Callback;
use HttpServer\Http\Context;
use Snowflake\Abstracts\Config;
use Snowflake\Event;
use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake;
@@ -64,8 +65,12 @@ class OnMessage extends Callback
throw new Exception('Format error.');
}
$router = Snowflake::app()->getRouter();
$node = $router->tree_search(explode('/', Socket::MESSAGE . '::' . $route), 'sw::socket');
$context = Config::get('router', false, ROUTER_TREE);
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) {
throw new Exception('Page not found.');
}
+11 -8
View File
@@ -80,13 +80,12 @@ class Router extends Application implements RouterInterface
$this->nodes[$method] = [];
}
// $useTree = Config::get('router', false, ROUTER_HASH);
// var_dump($useTree);
// if ($useTree == ROUTER_TREE) {
return $this->tree($path, $handler, $method);
// } else {
// return $this->hash($path, $handler, $method);
// }
$useTree = Config::get('router', false, ROUTER_TREE);
if ($useTree == ROUTER_TREE) {
return $this->tree($path, $handler, $method);
} else {
return $this->hash($path, $handler, $method);
}
}
@@ -500,10 +499,14 @@ class Router extends Application implements RouterInterface
* @param Request $request
* @return Node|null 树干搜索
* 树干搜索
* @throws ConfigException
*/
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();
$uri = $request->headers->get('request_uri', '/');