This commit is contained in:
2021-08-12 12:40:06 +08:00
parent 39af292171
commit 9a6c7b835b
19 changed files with 655 additions and 29 deletions
+71
View File
@@ -0,0 +1,71 @@
<?php
namespace Server\Service;
use Exception;
use HttpServer\Exception\RequestException;
use HttpServer\Route\Node;
use Kiri\Exception\NotFindClassException;
use ReflectionException;
use Server\Events\OnAfterRequest;
use Server\ResponseInterface;
use Server\SInterface\OnClose;
use Swoole\Error;
use Swoole\Http\Request;
use Swoole\Http\Response;
use Swoole\Server;
/**
*
*/
class Http extends \Server\Abstracts\Http implements OnClose
{
/**
* @param Request $request
* @param Response $response
* @throws NotFindClassException
* @throws ReflectionException
*/
public function onRequest(Request $request, Response $response): void
{
// TODO: Implement onRequest() method.
try {
$node = $this->router->Branch_search(\Server\Constrict\Request::create($request));
if (!($node instanceof Node)) {
throw new RequestException('<h2>HTTP 404 Not Found</h2><hr><i>Powered by Swoole</i>', 404);
}
if (!(($responseData = $node->dispatch()) instanceof ResponseInterface)) {
$responseData = $this->response->setContent($responseData)->setStatusCode(200);
}
} catch (Error | \Throwable $exception) {
$responseData = $this->exceptionHandler->emit($exception, $this->response);
} finally {
$this->responseEmitter->sender($response, $responseData);
$this->eventDispatch->dispatch(new OnAfterRequest());
}
}
/**
* @param Server $server
* @param int $fd
* @throws Exception
*/
public function onDisconnect(Server $server, int $fd): void
{
}
/**
* @param Server $server
* @param int $fd
* @throws Exception
*/
public function onClose(Server $server, int $fd): void
{
}
}
+57
View File
@@ -0,0 +1,57 @@
<?php
namespace Server\Service;
use Server\SInterface\OnClose;
use Server\SInterface\OnConnect;
use Swoole\Server;
/**
*
*/
class Tcp extends \Server\Abstracts\Tcp implements OnConnect, OnClose
{
/**
* @param Server $server
* @param int $fd
*/
public function onConnect(Server $server, int $fd): void
{
// TODO: Implement onConnect() method.
}
/**
* @param Server $server
* @param int $fd
* @param int $reactor_id
* @param string $data
*/
public function onReceive(Server $server, int $fd, int $reactor_id, string $data): void
{
// TODO: Implement onReceive() method.
}
/**
* @param Server $server
* @param int $fd
*/
public function onClose(Server $server, int $fd): void
{
// TODO: Implement onClose() method.
}
/**
* @param Server $server
* @param int $fd
*/
public function onDisconnect(Server $server, int $fd): void
{
// TODO: Implement onDisconnect() method.
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace Server\Service;
use Server\Abstracts\Server;
/**
*
*/
class Udp extends \Server\Abstracts\Udp
{
/**
* @param Server $server
* @param string $data
* @param array $clientInfo
*/
public function onPacket(Server $server, string $data, array $clientInfo): void
{
// TODO: Implement onPacket() method.
}
}
+62
View File
@@ -0,0 +1,62 @@
<?php
namespace Server\Service;
use Exception;
use Server\SInterface\OnRequest;
use Swoole\Http\Request;
use Swoole\Http\Response;
use Swoole\Server;
use Swoole\WebSocket\Frame;
/**
*
*/
class WebSocket extends \Server\Abstracts\Websocket
{
/**
* @param Request $request
* @param Response $response
* @throws Exception
*/
public function onHandshake(Request $request, Response $response): void
{
parent::onHandshake($request, $response); // TODO: Change the autogenerated stub
$response->status(101);
$response->end();
}
/**
* @param Server $server
* @param Frame $frame
*/
public function onMessage(Server $server, Frame $frame): void
{
// TODO: Implement OnMessage() method.
}
/**
* @param Server $server
* @param int $fd
*/
public function onClose(Server $server, int $fd): void
{
// TODO: Implement OnClose() method.
}
/**
* @param Server $server
* @param int $fd
*/
public function onDisconnect(Server $server, int $fd): void
{
// TODO: Implement OnDisconnect() method.
}
}