Fixed bug preventing client reconnecting

This commit is contained in:
Chris 2024-03-01 22:27:55 +01:00
parent b2494c3163
commit 39f2ea4e11

View File

@ -71,6 +71,7 @@ class CommandBusClient implements CommandBusInterface
$this->isReconnecting = true;
$this->connector->connect($this->address)->then(
function (DuplexStreamInterface $connection) {
$this->isReconnecting = false;
$this->connection = $connection;
$this->emit(self::EVENT_CONNECTED);
$connection->on('error', function ($error) {
@ -79,14 +80,12 @@ class CommandBusClient implements CommandBusInterface
if ($this->autoReconnect) {
Loop::addTimer(1, $this->reconnect(...));
}
$this->isReconnecting = false;
});
$connection->on('close', function () {
$this->emit(self::EVENT_DISCONNECTED);
if ($this->autoReconnect) {
Loop::addTimer(1, $this->reconnect(...));
}
$this->isReconnecting = false;
});
$connection->on('data', function ($data) use ($connection) {
try {
@ -100,6 +99,7 @@ class CommandBusClient implements CommandBusInterface
});
},
function (Throwable $e) {
$this->isReconnecting = false;
$this->emit(self::EVENT_ERROR, [ $e->getMessage(), $e ]);
Loop::addTimer(5, $this->reconnect(...));
}