This commit is contained in:
2021-04-07 14:07:18 +08:00
parent 2840a0c956
commit ac47cc4032
3 changed files with 581 additions and 554 deletions
+13 -3
View File
@@ -6,6 +6,8 @@ namespace HttpServer\Events;
use HttpServer\Abstracts\Callback; use HttpServer\Abstracts\Callback;
use HttpServer\Http\Request; use HttpServer\Http\Request;
use HttpServer\Route\Router;
use Snowflake\Application;
use Snowflake\Core\Json; use Snowflake\Core\Json;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Snowflake; use Snowflake\Snowflake;
@@ -25,6 +27,15 @@ class OnReceive extends Callback
public string $host = ''; public string $host = '';
private Router $router;
public function init()
{
$this->router = Snowflake::app()->getRouter();
}
/** /**
* @param Server $server * @param Server $server
* @param int $fd * @param int $fd
@@ -36,9 +47,8 @@ class OnReceive extends Callback
public function onHandler(Server $server, int $fd, int $reID, string $data): mixed public function onHandler(Server $server, int $fd, int $reID, string $data): mixed
{ {
try { try {
$request = Request::createListenRequest($fd, $server, $data, $reID); $request = Request::createListenRequest($fd, $data, $reID);
$router = Snowflake::app()->getRouter(); if (($node = $this->router->find_path($request)) === null) {
if (($node = $router->find_path($request)) === null) {
return $server->send($fd, Json::encode(['state' => 404])); return $server->send($fd, Json::encode(['state' => 404]));
} }
$dispatch = $node->dispatch(); $dispatch = $node->dispatch();
+19
View File
@@ -35,6 +35,25 @@ class HttpHeaders
$this->headers = $headers; $this->headers = $headers;
} }
/**
* @param string $uri
*/
public function setRequestUri(string $uri)
{
$this->headers['request_uri'] = $uri;
}
/**
* @param string $method
*/
public function setRequestMethod(string $method)
{
$this->headers['request_method'] = $method;
}
/** /**
* @param $name * @param $name
* @param $value * @param $value
File diff suppressed because it is too large Load Diff