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;
    }
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 живое соединение, или не живое
Поддерживает жизнь соединения . Что делает : - контролирует текущее состояние соединения - проверяет связь с заданным интервалом // * - выполняет чтение входящих данных - выполняет переподключение при обрыве связи если это включено ( кроме серверного сокета )