This commit is contained in:
2021-03-19 18:28:59 +08:00
parent eeab6d5078
commit 4c4e0afd54
3 changed files with 12 additions and 5 deletions
+5
View File
@@ -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) {
+5 -2
View File
@@ -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 ?? []);
}
/**
+2 -3
View File
@@ -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) {