modify
This commit is contained in:
@@ -27,15 +27,13 @@ class OnClose extends Callback
|
|||||||
public function onHandler(Server $server, int $fd)
|
public function onHandler(Server $server, int $fd)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_RELEASES);
|
$clientInfo = $server->getClientInfo($fd);
|
||||||
});
|
if (!Event::exists(($name = $this->getName($clientInfo)))) {
|
||||||
$clientInfo = $server->getClientInfo($fd);
|
|
||||||
if (!Event::exists(($name = $this->getName($clientInfo)))) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Event::trigger($name, [$server, $fd]);
|
Event::trigger($name, [$server, $fd]);
|
||||||
} catch (\Throwable $exception) {
|
} catch (\Throwable $exception) {
|
||||||
$this->addError($exception, 'throwable');
|
$this->addError($exception, 'throwable');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ class OnConnect extends Callback
|
|||||||
public function onHandler(Server $server, int $fd, int $reactorId)
|
public function onHandler(Server $server, int $fd, int $reactorId)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_RELEASES);
|
|
||||||
});
|
|
||||||
if (($clientInfo = $server->getClientInfo($fd, $reactorId)) === false) {
|
if (($clientInfo = $server->getClientInfo($fd, $reactorId)) === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,9 +27,8 @@ class OnFinish extends Callback
|
|||||||
public function onHandler(Server $server, $task_id, $data)
|
public function onHandler(Server $server, $task_id, $data)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_RELEASES);
|
|
||||||
});
|
|
||||||
fire(Event::TASK_FINISH, [$task_id, $data]);
|
fire(Event::TASK_FINISH, [$task_id, $data]);
|
||||||
} catch (\Throwable $exception) {
|
} catch (\Throwable $exception) {
|
||||||
$this->addError($exception, 'task');
|
$this->addError($exception, 'task');
|
||||||
|
|||||||
@@ -97,9 +97,8 @@ class OnHandshake extends Callback
|
|||||||
public function onHandler(SRequest $request, SResponse $response): void
|
public function onHandler(SRequest $request, SResponse $response): void
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_CLEAN);
|
|
||||||
});
|
|
||||||
$this->execute($request, $response);
|
$this->execute($request, $response);
|
||||||
} catch (\Throwable $exception) {
|
} catch (\Throwable $exception) {
|
||||||
$this->addError($exception, 'throwable');
|
$this->addError($exception, 'throwable');
|
||||||
|
|||||||
@@ -38,20 +38,14 @@ class OnMessage extends Callback
|
|||||||
public function onHandler(Server $server, Frame $frame)
|
public function onHandler(Server $server, Frame $frame)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_CLEAN);
|
|
||||||
});
|
|
||||||
if ($frame->opcode === 0x08) {
|
if ($frame->opcode === 0x08) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$clientInfo = $server->getClientInfo($frame->fd);
|
Event::trigger($this->getName($server, $frame), [$frame, $server]);
|
||||||
if (!Event::exists(($name = $this->getName($clientInfo)))) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Event::trigger($name, [$frame, $server]);
|
|
||||||
} catch (\Throwable $exception) {
|
} catch (\Throwable $exception) {
|
||||||
$this->addError($exception, 'websocket');
|
$this->addError($exception, 'websocket');
|
||||||
if (!swoole()->exist($frame->fd)) {
|
if (!swoole()->isEstablished($frame->fd)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$server->send($frame->fd, $exception->getMessage());
|
$server->send($frame->fd, $exception->getMessage());
|
||||||
@@ -63,8 +57,10 @@ class OnMessage extends Callback
|
|||||||
* @param $clientInfo
|
* @param $clientInfo
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function getName($clientInfo): string
|
private function getName(Server $server, Frame $frame): string
|
||||||
{
|
{
|
||||||
|
$clientInfo = $server->getClientInfo($frame->fd);
|
||||||
|
|
||||||
return 'listen ' . $clientInfo['server_port'] . ' ' . Event::SERVER_MESSAGE;
|
return 'listen ' . $clientInfo['server_port'] . ' ' . Event::SERVER_MESSAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,9 +36,8 @@ class OnPacket extends Callback
|
|||||||
{
|
{
|
||||||
[$host, $port] = [$clientInfo['address'], $clientInfo['port']];
|
[$host, $port] = [$clientInfo['address'], $clientInfo['port']];
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_RELEASES);
|
|
||||||
});
|
|
||||||
$request = $this->_request($clientInfo, $server, $data);
|
$request = $this->_request($clientInfo, $server, $data);
|
||||||
|
|
||||||
$router = Snowflake::app()->getRouter();
|
$router = Snowflake::app()->getRouter();
|
||||||
|
|||||||
@@ -28,7 +28,9 @@ class OnPipeMessage extends Callback
|
|||||||
*/
|
*/
|
||||||
public function onHandler(Server $server, int $src_worker_id, $swollen_universalize)
|
public function onHandler(Server $server, int $src_worker_id, $swollen_universalize)
|
||||||
{
|
{
|
||||||
match ($swollen_universalize['action'] ?? null) {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
|
|
||||||
|
match ($swollen_universalize['action'] ?? null) {
|
||||||
'kafka' => $this->onKafkaWorker($swollen_universalize),
|
'kafka' => $this->onKafkaWorker($swollen_universalize),
|
||||||
'crontab' => $this->onCrontabWorker($swollen_universalize),
|
'crontab' => $this->onCrontabWorker($swollen_universalize),
|
||||||
default => $this->onMessageWorker($server, $src_worker_id, $swollen_universalize)
|
default => $this->onMessageWorker($server, $src_worker_id, $swollen_universalize)
|
||||||
|
|||||||
@@ -48,9 +48,8 @@ class OnReceive extends Callback
|
|||||||
public function onHandler(Server $server, int $fd, int $reID, string $data): mixed
|
public function onHandler(Server $server, int $fd, int $reID, string $data): mixed
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_RELEASES);
|
|
||||||
});
|
|
||||||
$request = $this->_request($fd, $data, $reID);
|
$request = $this->_request($fd, $data, $reID);
|
||||||
if (($node = $this->router->find_path($request)) === null) {
|
if (($node = $this->router->find_path($request)) === null) {
|
||||||
return $server->send($fd, Json::encode(['state' => 404]));
|
return $server->send($fd, Json::encode(['state' => 404]));
|
||||||
|
|||||||
@@ -51,9 +51,8 @@ class OnRequest extends Callback
|
|||||||
public function onHandler(Request $request, Response $response): mixed
|
public function onHandler(Request $request, Response $response): mixed
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
Coroutine::defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_RELEASES);
|
|
||||||
});
|
|
||||||
/** @var HResponse $response */
|
/** @var HResponse $response */
|
||||||
[$request, $response] = OnRequest::createContext($request, $response);
|
[$request, $response] = OnRequest::createContext($request, $response);
|
||||||
|
|
||||||
|
|||||||
@@ -102,9 +102,8 @@ class OnTask extends Callback
|
|||||||
private function runTaskHandler($data): ?array
|
private function runTaskHandler($data): ?array
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
defer(function () {
|
defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES));
|
||||||
fire(Event::SYSTEM_RESOURCE_CLEAN);
|
|
||||||
});
|
|
||||||
$serialize = $this->before($data);
|
$serialize = $this->before($data);
|
||||||
if ($serialize === null) {
|
if ($serialize === null) {
|
||||||
throw new Exception('unpack error.');
|
throw new Exception('unpack error.');
|
||||||
|
|||||||
Reference in New Issue
Block a user