From 5bfe8401f574c7b855eeb5ff446e74497804304d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Tue, 11 Oct 2022 18:55:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contract/OnCloseInterface.php | 7 +- .../Contract/OnDisconnectInterface.php | 15 ++++ .../Contract/OnHandshakeInterface.php | 4 +- .../Contract/OnMessageInterface.php | 5 +- .../Contract/OnOpenInterface.php | 6 +- kiri-websocket-server/Server.php | 81 +++++++++---------- 6 files changed, 57 insertions(+), 61 deletions(-) create mode 100644 kiri-websocket-server/Contract/OnDisconnectInterface.php diff --git a/kiri-websocket-server/Contract/OnCloseInterface.php b/kiri-websocket-server/Contract/OnCloseInterface.php index 253c8385..ee001924 100644 --- a/kiri-websocket-server/Contract/OnCloseInterface.php +++ b/kiri-websocket-server/Contract/OnCloseInterface.php @@ -3,20 +3,15 @@ namespace Kiri\Websocket\Contract; -use Swoole\WebSocket\Frame; -use Swoole\WebSocket\Server; -use Swoole\Coroutine\Http\Server as CoroutineServer; - interface OnCloseInterface { /** - * @param Server|CoroutineServer $server * @param int $fd * @return void */ - public function onClose(Server|CoroutineServer $server, int $fd): void; + public function OnClose(int $fd): void; } diff --git a/kiri-websocket-server/Contract/OnDisconnectInterface.php b/kiri-websocket-server/Contract/OnDisconnectInterface.php new file mode 100644 index 00000000..45b39043 --- /dev/null +++ b/kiri-websocket-server/Contract/OnDisconnectInterface.php @@ -0,0 +1,15 @@ +withContent('Page not found.')->withStatus(404); } else { - $psrResponse = $this->dispatcher->with($handler)->handle($psrRequest); - - $executor = $handler->callback; - $response->upgrade(); - if ($handler instanceof OnHandshakeInterface) { - $statusCode = $handler->onHandshake($request, $response); - $response->setStatusCode($statusCode); - $response->write("connect ok."); - } - if ($executor instanceof OnOpenInterface) { - $executor->onOpen($this->server, $request); - } - while (true) { - $frame = $response->recv(); - if ($frame === false || $frame instanceof CloseFrame || $frame === '') { - $handler->onClose($this->server, $response->fd); - break; - } - $handler->onMessage($this->server, $frame); - } +// $psrResponse = $this->dispatcher->with($handler)->handle($psrRequest); +// +// $executor = $handler->callback; +// $response->upgrade(); +// if ($handler instanceof OnHandshakeInterface) { +// $statusCode = $handler->OnHandshake($request, $response); +// $response->setStatusCode($statusCode); +// $response->write("connect ok."); +// } +// if ($executor instanceof OnOpenInterface) { +// $executor->onOpen($this->server, $request); +// } +// while (true) { +// $frame = $response->recv(); +// if ($frame === false || $frame instanceof CloseFrame || $frame === '') { +// $handler->onClose($this->server, $response->fd); +// break; +// } +// $handler->onMessage($this->server, $frame); +// } } } catch (\Throwable $throwable) { $psrResponse = $this->exception->emit($throwable, di(CResponse::class)); @@ -175,44 +173,39 @@ class Server extends Component /** - * @param WsServer|Coroutine\Http\Server $server * @param Frame $frame * @return void */ - public function onMessage(WsServer|WhServer $server, Frame $frame): void + public function OnMessage(Frame $frame): void { - $handler = $this->handler->callback; - if ($handler instanceof OnMessageInterface) { - $handler->onMessage($server, $frame); - } } /** - * @param WsServer|Coroutine\Http\Server $server * @param int $fd * @return void */ - public function onClose(WsServer|WhServer $server, int $fd): void + public function OnClose(int $fd): void { - $handler = $this->handler->callback; - if ($handler instanceof OnCloseInterface) { - $handler->onClose($server, $fd); - } } /** - * @param WsServer|WhServer $server + * @param int $fd + * @return void + */ + public function OnDisconnect(int $fd): void + { + // TODO: Implement OnDisconnect() method. + } + + + /** * @param Request $request * @return void */ - public function onOpen(WsServer|WhServer $server, Request $request): void + public function OnOpen(Request $request): void { - $handler = $this->handler->callback; - if ($handler instanceof OnOpenInterface) { - $handler->onOpen($server, $request); - } }