diff --git a/app/Client.php b/app/Client.php index e8b3f45..3611833 100644 --- a/app/Client.php +++ b/app/Client.php @@ -39,6 +39,8 @@ class Client public static $subdomains = []; public static $localUrl = ''; + protected ?string $closingMessage = null; + public function __construct(LoopInterface $loop, Configuration $configuration, CliLogger $logger) { $this->loop = $loop; @@ -113,6 +115,10 @@ public function connectToServer(string $sharedUrl, $subdomain, $serverHost = nul $connection->authenticate($sharedUrl, $subdomain, $serverHost); $clientConnection->on('close', function () use ($sharedUrl, $subdomain, $serverHost, $authToken) { + if ($this->closingMessage) { + $this->logger->renderMessage($this->closingMessage); + } + $this->logger->error('Connection to server closed.'); $this->retryConnectionOrExit(function () use ($sharedUrl, $subdomain, $serverHost, $authToken) { @@ -139,6 +145,8 @@ public function connectToServer(string $sharedUrl, $subdomain, $serverHost = nul $this->logger->renderMessage($data->message); } + $this->closingMessage = $data->closing_message ?? null; + $this->logger->renderConnectionTable([ "Shared site" => $sharedUrl, "Dashboard" => "http://127.0.0.1:".config()->get('expose.dashboard_port'), @@ -189,6 +197,10 @@ public function connectToServerAndShareTcp(int $port, $authToken = ''): PromiseI $this->attachCommonConnectionListeners($connection, $deferred); $clientConnection->on('close', function () use ($port, $authToken) { + if ($this->closingMessage) { + $this->logger->renderMessage($this->closingMessage); + } + $this->logger->error('Connection to server closed.'); $this->retryConnectionOrExit(function () use ($port, $authToken) { @@ -205,6 +217,8 @@ public function connectToServerAndShareTcp(int $port, $authToken = ''): PromiseI $this->logger->info("Expose-URL:\t\ttcp://{$host}:{$data->shared_port}"); $this->logger->line(''); + $this->closingMessage = $data->closing_message ?? null; + $deferred->resolve($data); }); }, function (\Exception $e) use ($deferred, $port, $authToken) {