This commit is contained in:
2021-01-04 17:43:01 +08:00
parent 2d97c3fe92
commit 835395e5fd
+17 -11
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,18 +28,14 @@ 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; $event = Snowflake::app()->getEvent();
} $content = $this->resolve($event, $frame, $server);
Coroutine::defer(function () { if (!empty($content)) {
fire(Event::EVENT_AFTER_REQUEST); $server->send($frame->fd, $content);
}); }
$event = Snowflake::app()->getEvent();
$content = $this->resolve($event, $frame, $server);
if (!empty($content)) {
$server->send($frame->fd, $content);
} }
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception->getMessage(), 'websocket'); $this->addError($exception->getMessage(), 'websocket');
@@ -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