src/Client.php
public function live(): bool
    {
        $alive = true;
        $time = time();

        if ($this->isConnected()) {
            if ($this->getTime() + $this->timeout <= $time) {
                $alive = false;
            } elseif (
                $this->getTime(self::TIME_LAST_PING) + $this->pingInterval <= $time
                && $this->getTime() + $this->pingInterval <= $time
            ) {
                // иногда пингуем соединение
                $this->ping();
                $this->resetTime(self::TIME_LAST_PING);
            }
        } elseif ($this->reconnectSupport) {
            if ($this->getTime(self::TIME_LAST_RECONNECT) + $this->reconnectInterval <= $time) {
                if ($this->reconnect()) {
                    $this->resetTime();
                } else {
                    sleep($this->reconnectInterval);
                }
            } else {
                $this->resetTime(self::TIME_LAST_RECONNECT);
            }
            // todo reconnect limit
        } else {
            $alive = false;
        }

        return $alive;
    }
public function live(): bool
    {
        $alive = true;
        $time = time();

        if ($this->isConnected()) {
            if ($this->getTime() + $this->timeout <= $time) {
                $alive = false;
            } elseif (
                $this->getTime(self::TIME_LAST_PING) + $this->pingInterval <= $time
                && $this->getTime() + $this->pingInterval <= $time
            ) {
                // иногда пингуем соединение
                $this->ping();
                $this->resetTime(self::TIME_LAST_PING);
            }
        } elseif ($this->reconnectSupport) {
            if ($this->getTime(self::TIME_LAST_RECONNECT) + $this->reconnectInterval <= $time) {
                if ($this->reconnect()) {
                    $this->resetTime();
                } else {
                    sleep($this->reconnectInterval);
                }
            } else {
                $this->resetTime(self::TIME_LAST_RECONNECT);
            }
            // todo reconnect limit
        } else {
            $alive = false;
        }

        return $alive;
    }
Поддерживает жизнь соединения.
Что делает:
- контролирует текущее состояние соединения,
- проверяет связь с заданным интервалом,
//     * - выполняет чтение входящих данных,
- выполняет переподключение при обрыве связи, если это включено (кроме серверного сокета),

Возвращает true, если сокет жив, false если не работает.
Можно использовать в бесконечном цикле:
while ($NET->live()) {
// тут делаем что-то.
}

@return bool живое соединение, или не живое