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