src/Bunny/Async/Client.php
public function connect()
    {
        if ($this->state !== ClientStateEnum::NOT_CONNECTED) {
            return Promise\reject(new ClientException("Client already connected/connecting."));
        }

        $this->state = ClientStateEnum::CONNECTING;
        $this->writer->appendProtocolHeader($this->writeBuffer);

        try {
            $this->eventLoop->addReadStream($this->getStream(), [$this, "onDataAvailable"]);
        } catch (\Exception $e) {
            return Promise\reject($e);
        }

        return $this->flushWriteBuffer()->then(function () {
            return $this->awaitConnectionStart();

        })->then(function (MethodConnectionStartFrame $start) {
            return $this->authResponse($start);

        })->then(function () {
            return $this->awaitConnectionTune();

        })->then(function (MethodConnectionTuneFrame $tune) {
            $this->frameMax = $tune->frameMax;
            if ($tune->channelMax > 0) {
                $this->channelMax = $tune->channelMax;
            }
            return $this->connectionTuneOk($tune->channelMax, $tune->frameMax, $this->options["heartbeat"]);

        })->then(function () {
            return $this->connectionOpen($this->options["vhost"]);

        })->then(function () {
            $this->heartbeatTimer = $this->eventLoop->addTimer($this->options["heartbeat"], [$this, "onHeartbeat"]);

            $this->state = ClientStateEnum::CONNECTED;
            return $this;

        });
    }
public function connect()
    {
        if ($this->state !== ClientStateEnum::NOT_CONNECTED) {
            return Promise\reject(new ClientException("Client already connected/connecting."));
        }

        $this->state = ClientStateEnum::CONNECTING;
        $this->writer->appendProtocolHeader($this->writeBuffer);

        try {
            $this->eventLoop->addReadStream($this->getStream(), [$this, "onDataAvailable"]);
        } catch (\Exception $e) {
            return Promise\reject($e);
        }

        return $this->flushWriteBuffer()->then(function () {
            return $this->awaitConnectionStart();

        })->then(function (MethodConnectionStartFrame $start) {
            return $this->authResponse($start);

        })->then(function () {
            return $this->awaitConnectionTune();

        })->then(function (MethodConnectionTuneFrame $tune) {
            $this->frameMax = $tune->frameMax;
            if ($tune->channelMax > 0) {
                $this->channelMax = $tune->channelMax;
            }
            return $this->connectionTuneOk($tune->channelMax, $tune->frameMax, $this->options["heartbeat"]);

        })->then(function () {
            return $this->connectionOpen($this->options["vhost"]);

        })->then(function () {
            $this->heartbeatTimer = $this->eventLoop->addTimer($this->options["heartbeat"], [$this, "onHeartbeat"]);

            $this->state = ClientStateEnum::CONNECTED;
            return $this;

        });
    }
public function connect ( ) { if ( $ this -> state !== ClientStateEnum :: NOT_CONNECTED ) { return Promise \ reject ( new ClientException ( "Client already connected/connecting." ) ) ; } $ this -> state = ClientStateEnum :: CONNECTING ; $ this -> writer -> appendProtocolHeader ( $ this -> writeBuffer ) ; try { $ this -> eventLoop -> addReadStream ( $ this -> getStream ( ) , [ $ this , "onDataAvailable" ] ) ; } catch ( \ Exception $ e ) { return Promise \ reject ( $ e ) ; } return $ this -> flushWriteBuffer ( ) -> then ( function ( ) { return $ this -> awaitConnectionStart ( ) ; } ) -> then ( function ( MethodConnectionStartFrame $ start ) { return $ this -> authResponse ( $ start ) ; } ) -> then ( function ( ) { return $ this -> awaitConnectionTune ( ) ; } ) -> then ( function ( MethodConnectionTuneFrame $ tune ) { $ this -> frameMax = $ tune -> frameMax ; if ( $ tune -> channelMax > 0 ) { $ this -> channelMax = $ tune -> channelMax ; } return $ this -> connectionTuneOk ( $ tune -> channelMax , $ tune -> frameMax , $ this -> options [ "heartbeat" ] ) ; } ) -> then ( function ( ) { return $ this -> connectionOpen ( $ this -> options [ "vhost" ] ) ; } ) -> then ( function ( ) { $ this -> heartbeatTimer = $ this -> eventLoop -> addTimer ( $ this -> options [ "heartbeat" ] , [ $ this , "onHeartbeat" ] ) ; $ this -> state = ClientStateEnum :: CONNECTED ; return $ this ; } ) ; }
Connects to AMQP server.

Calling connect() multiple times will result in error.

@return Promise\PromiseInterface
Connects to AMQP server .