code: public function setPersistanceTimeout($timeoutInSeconds = null)
      {
          if ($timeoutInSeconds === null) {
              //let us try default to default_socket_timeout
              $iniDefaultSocketTimeout = ini_get('default_socket_timeout');
              $this->persistanceTimeout = $iniDefaultSocketTimeout ? $iniDefaultSocketTimeout : 0; //if setting missing default to disabled value (0)
          } else {
              if ($timeoutInSeconds < 0) {
                  throw new Exception('Persistance timeout must be a positive integer, 0 to disable or null to use ini default_socket_timeout value.');
              } else {
                  $this->persistanceTimeout = $timeoutInSeconds;
              }
          }
          return $this;
      }
docs: Sets the data read (after a successful negotiation) timeout in seconds.
  Throws an exception when value is negative.
  Set 0 to disable timeout. null to use ini default_socket_timeout
  
  @param int $timeoutInSeconds
  @return $this
  @throws Exception