This commit is contained in:
2020-11-27 14:52:04 +08:00
parent cbc4a24620
commit cf8866d1ce
2 changed files with 9 additions and 3 deletions
+5 -3
View File
@@ -11,6 +11,7 @@ use HttpServer\Route\Annotation\Websocket;
use HttpServer\Route\Annotation\Websocket as AWebsocket; use HttpServer\Route\Annotation\Websocket as AWebsocket;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Snowflake; use Snowflake\Snowflake;
use Swoole\Coroutine;
use Swoole\Server; use Swoole\Server;
use Exception; use Exception;
use Swoole\Http\Server as HServer; use Swoole\Http\Server as HServer;
@@ -33,6 +34,10 @@ class OnClose extends Callback
public function onHandler(Server $server, int $fd) public function onHandler(Server $server, int $fd)
{ {
try { try {
$event = Snowflake::app()->getEvent();
Coroutine::defer(function () use ($event) {
$event->trigger(Event::EVENT_AFTER_REQUEST);
});
[$manager, $name] = $this->resolve($server, $fd); [$manager, $name] = $this->resolve($server, $fd);
if (empty($manager) || !$manager->has($name)) { if (empty($manager) || !$manager->has($name)) {
return; return;
@@ -41,9 +46,6 @@ class OnClose extends Callback
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception); $this->addError($exception);
} finally { } finally {
$event = Snowflake::app()->event;
$event->trigger(Event::RELEASE_ALL);
$logger = Snowflake::app()->getLogger(); $logger = Snowflake::app()->getLogger();
$logger->insert(); $logger->insert();
} }
+4
View File
@@ -10,6 +10,7 @@ use HttpServer\Route\Annotation\Websocket as AWebsocket;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Exception\ComponentException; use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake; use Snowflake\Snowflake;
use Swoole\Coroutine;
use Swoole\Http\Request as SRequest; use Swoole\Http\Request as SRequest;
use Swoole\Http\Response as SResponse; use Swoole\Http\Response as SResponse;
use Swoole\WebSocket\Server; use Swoole\WebSocket\Server;
@@ -77,6 +78,9 @@ class OnHandshake extends Callback
public function onHandler(SRequest $request, SResponse $response) public function onHandler(SRequest $request, SResponse $response)
{ {
try { try {
Coroutine::defer(function () {
fire(Event::EVENT_AFTER_REQUEST);
});
$this->resolveParse($request, $response); $this->resolveParse($request, $response);
$manager = Snowflake::app()->annotation->websocket; $manager = Snowflake::app()->annotation->websocket;