This commit is contained in:
2021-01-04 17:43:01 +08:00
parent 2d97c3fe92
commit 835395e5fd
+13 -7
View File
@@ -8,6 +8,7 @@ use Annotation\Route\Socket;
use Exception; use Exception;
use HttpServer\Abstracts\Callback; use HttpServer\Abstracts\Callback;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake; use Snowflake\Snowflake;
use Swoole\Coroutine; use Swoole\Coroutine;
use Swoole\WebSocket\Frame; use Swoole\WebSocket\Frame;
@@ -27,19 +28,15 @@ class OnMessage extends Callback
*/ */
public function onHandler(Server $server, Frame $frame) public function onHandler(Server $server, Frame $frame)
{ {
Coroutine::defer([$this, 'onAfter']);
try { try {
if ($frame->opcode == 0x08) { if ($frame->opcode != 0x08) {
return;
}
Coroutine::defer(function () {
fire(Event::EVENT_AFTER_REQUEST);
});
$event = Snowflake::app()->getEvent(); $event = Snowflake::app()->getEvent();
$content = $this->resolve($event, $frame, $server); $content = $this->resolve($event, $frame, $server);
if (!empty($content)) { if (!empty($content)) {
$server->send($frame->fd, $content); $server->send($frame->fd, $content);
} }
}
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception->getMessage(), 'websocket'); $this->addError($exception->getMessage(), 'websocket');
$server->send($frame->fd, $exception->getMessage()); $server->send($frame->fd, $exception->getMessage());
@@ -48,6 +45,15 @@ class OnMessage extends Callback
} }
} }
/**
* @throws ComponentException
*/
public function onAfter()
{
fire(Event::EVENT_AFTER_REQUEST);
}
/** /**
* @param $event * @param $event
* @param $frame * @param $frame