This commit is contained in:
2021-03-08 18:40:42 +08:00
parent e1dd10e210
commit b2693aa005
5 changed files with 23 additions and 17 deletions
+13 -14
View File
@@ -32,8 +32,14 @@ class OnClose extends Callback
*/ */
public function onHandler(Server $server, int $fd) public function onHandler(Server $server, int $fd)
{ {
$this->execute($server, $fd); try {
fire(Event::SYSTEM_RESOURCE_RELEASES); $this->execute($server, $fd);
} catch (\Throwable $exception) {
$this->addError($exception);
} finally {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger()->insert();
}
} }
@@ -45,18 +51,11 @@ class OnClose extends Callback
*/ */
private function execute(Server $server, int $fd): void private function execute(Server $server, int $fd): void
{ {
try { if (!$this->isWebsocket($server, $fd)) {
if (!$this->isWebsocket($server, $fd)) { $client = $server->getClientInfo($fd);
$client = $server->getClientInfo($fd); fire($this->name($client['server_port']), [$server, $fd]);
fire($this->name($client['server_port']), [$server, $fd]); } else {
} else { $this->loadNode($server, $fd);
$this->loadNode($server, $fd);
}
} catch (\Throwable $exception) {
$this->addError($exception);
} finally {
fire(Event::SYSTEM_RESOURCE_RELEASES);
logger()->insert();
} }
} }
+6 -2
View File
@@ -30,9 +30,13 @@ class OnConnect extends Callback
$clientInfo = $server->getClientInfo($fd); $clientInfo = $server->getClientInfo($fd);
$name = 'listen ' . $clientInfo['server_port'] . ' ' . Event::RECEIVE_CONNECTION; try {
$name = 'listen ' . $clientInfo['server_port'] . ' ' . Event::RECEIVE_CONNECTION;
$event->trigger($name, [$server, $fd, $reactorId]); $event->trigger($name, [$server, $fd, $reactorId]);
} catch (\Throwable $throwable) {
$this->addError($throwable, 'connect');
}
fire(Event::SYSTEM_RESOURCE_RELEASES); fire(Event::SYSTEM_RESOURCE_RELEASES);
logger()->insert(); logger()->insert();
+2
View File
@@ -50,6 +50,8 @@ class OnPacket extends Callback
return $server->sendto($host, $port, $dispatch); return $server->sendto($host, $port, $dispatch);
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception, 'packet');
$response = Json::encode(['state' => 500, 'message' => $exception->getMessage()]); $response = Json::encode(['state' => 500, 'message' => $exception->getMessage()]);
return $server->sendto($clientInfo['address'], $clientInfo['port'], $response); return $server->sendto($clientInfo['address'], $clientInfo['port'], $response);
+2
View File
@@ -48,6 +48,8 @@ class OnReceive extends Callback
return $server->send($fd, $dispatch); return $server->send($fd, $dispatch);
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->addError($exception, 'receive');
return $server->send($fd, Json::encode(['state' => 500, 'message' => $exception->getMessage()])); return $server->send($fd, Json::encode(['state' => 500, 'message' => $exception->getMessage()]));
} finally { } finally {
$event = Snowflake::app()->getEvent(); $event = Snowflake::app()->getEvent();
-1
View File
@@ -288,7 +288,6 @@ abstract class Pool extends Component
$this->pop($channel, $name, 0); $this->pop($channel, $name, 0);
if ($this->creates > -1) { if ($this->creates > -1) {
Timer::clear($this->creates); Timer::clear($this->creates);
$this->debug('clean timer.');
} }
$this->_items[$name] = null; $this->_items[$name] = null;
} }