diff --git a/HttpServer/Events/OnHandshake.php b/HttpServer/Events/OnHandshake.php index dc89b3b7..b555975f 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\HttpParams; use HttpServer\Http\Request; use Snowflake\Event; use Snowflake\Snowflake; @@ -119,10 +120,14 @@ class OnHandshake extends Callback } $router = Snowflake::app()->getRouter(); + /** @var Request $sRequest */ $sRequest = Request::create($request); $sRequest->uri = '/' . Socket::HANDSHAKE . '::event'; $sRequest->headers->replace('request_method', 'sw::socket'); $sRequest->headers->replace('request_uri', $sRequest->uri); + + $sRequest->params = new HttpParams(); + $sRequest->parseUri(); if (($node = $router->find_path($sRequest)) === null) { diff --git a/HttpServer/Http/HttpParams.php b/HttpServer/Http/HttpParams.php index 3d759ece..48dc73e6 100644 --- a/HttpServer/Http/HttpParams.php +++ b/HttpServer/Http/HttpParams.php @@ -33,17 +33,20 @@ class HttpParams /** @var array */ private array $files = []; + private array $socket = []; /** * HttpParams constructor. * @param $body * @param $get * @param $files + * @param array $socket */ - public function __construct($body, $get, $files) + public function __construct($body, $get, $files, $socket = []) { $this->gets = $get ?? []; $this->files = $files ?? []; + $this->socket = $socket ?? []; if (!is_array($body)) { $this->body = Help::toArray($body); } else { @@ -172,7 +175,7 @@ class HttpParams */ #[Pure] public function load(): array { - return array_merge($this->files ?? [], $this->body ?? [], $this->gets ?? []); + return array_merge($this->files ?? [], $this->body ?? [], $this->gets ?? [], $this->socket ?? []); } /** diff --git a/HttpServer/Route/Node.php b/HttpServer/Route/Node.php index 48ae2699..65ab61da 100644 --- a/HttpServer/Route/Node.php +++ b/HttpServer/Route/Node.php @@ -571,9 +571,6 @@ class Node extends HttpService /** * @return mixed - * @throws ComponentException - * @throws NotFindClassException - * @throws ReflectionException * @throws Exception */ private function httpFilter(): mixed @@ -589,6 +586,8 @@ class Node extends HttpService $filter = Snowflake::app()->get('filter'); $validator = $filter->check(get_class($class), $method); if ($validator instanceof Validator && !$validator->validation()) { + response()->statusCode = 401; + return Json::to(401, $validator->getError()); } } catch (Throwable $throwable) {