Class | AMQP::Session
In: | lib/amqp/session.rb
Parent: | AMQ::Client::EventMachineClient

AMQP session represents connection to the broker. Session objects let you define callbacks for various TCP connection lifecycle events, for instance:

- Connection is established
- Connection has failed
- Authentication has failed
- Connection is lost (there is a network failure)
- AMQP connection is opened
- AMQP connection parameters (tuning) are negotiated and accepted by the broker
- AMQP connection is properly closed

h2. Key methods

- {Session#on_connection}
- {Session#on_open}
- {Session#on_disconnection}
- {Session#on_possible_authentication_failure}
- {Session#on_tcp_connection_failure}
- {Session#on_tcp_connection_loss}
- {Session#reconnect}
- {Session#connected?}

@api public

### Methods

after_connection_interruption after_recovery authentication_failure_exception_class auto_recover auto_recovering? auto_recovery? before_recovery broker broker_endpoint close connected? disconnect handle_connection_interruption host hostname new on_closed on_connection_interruption on_error on_open on_possible_authentication_failure on_recovery on_tcp_connection_failure on_tcp_connection_loss port reconnect reconnect_to tcp_connection_failure_exception_class user username

### Attributes

server_capabilities | [R] | Server capabilities (usually used to detect AMQP 0.9.1 extensions like basic.nack, publisher confirms and so on) @return [Hash] @see bit.ly/htCzCX AMQP 0.9.1 protocol documentation (Section 1.4.2.1.3)
server_locales | [R] | Locales server supports @see bit.ly/htCzCX AMQP 0.9.1 protocol documentation (Section 1.4.2.1.3)
server_properties | [R] | Server properties (product information, platform, et cetera) @return [Hash] @see bit.ly/htCzCX AMQP 0.9.1 protocol documentation (Section 1.4.2.1.3)

### Public Class methods

authentication_failure_exception_class()

Overrides authentication failure exception to one that inherits from AMQP::Error and thus is backwards compatible.

@private @api plugin @return [Class] AMQP::PossibleAuthenticationFailureError

new(*args, &block)

@group Connecting, reconnecting, disconnecting

tcp_connection_failure_exception_class()

Overrides TCP connection failure exception to one that inherits from AMQP::Error and thus is backwards compatible.

@private @api plugin @return [Class] AMQP::TCPConnectionFailed

### Public Instance methods

after_connection_interruption(&block)

Alias for on_connection_interruption

after_recovery(&block)

Alias for on_recovery

auto_recover()

Performs recovery of channels that are in the automatic recovery mode.

@see Channel#auto_recover @see Queue#auto_recover @see Exchange#auto_recover @api plugin

auto_recovering?()

@return [Boolean] whether connection is in the automatic recovery mode @api public

auto_recovery?()

Alias for auto_recovering?

before_recovery(&block)

Defines a callback that will be executed after TCP connection has recovered after a network failure but before AMQP connection is re-opened. Only one callback can be defined (the one defined last replaces previously added ones).

@api public

broker()

@return [AMQP::Broker] Broker this connection is established with

broker_endpoint()

@return [String] Broker endpoint in the form of HOST:PORT/VHOST @api public

close(reply_code = 200, reply_text = "Goodbye", &block)

Alias for disconnect

connected?()

@return [Boolean] true if this AMQP connection is currently open @api plugin

disconnect(reply_code = 200, reply_text = "Goodbye", &block)

Properly close connection with AMQ broker, as described in section 2.2.4 of the {bit.ly/hw2ELX AMQP 0.9.1 specification}.

@api plugin @see close_connection

handle_connection_interruption()

@private @api plugin

host()

Alias for hostname

hostname()

@return [String] Broker hostname this connection uses @api public

on_closed(&block)

Defines a callback that will be run when broker confirms connection termination (client receives connection.close-ok). You can define more than one callback.

@see on_closed @api public

on_connection_interruption(&block)

Defines a callback that will be executed after TCP connection is interrupted (typically because of a network failure). Only one callback can be defined (the one defined last replaces previously added ones).

@api public

on_error(&block)

Defines a callback that will be executed when connection is closed after connection-level exception. Only one callback can be defined (the one defined last replaces previously added ones).

@api public

on_open(&block)

Defines a callback that will be executed when AMQP connection is considered open: after client and broker has agreed on max channel identifier and maximum allowed frame size and authentication succeeds. You can define more than one callback.

@see on_closed @api public

on_possible_authentication_failure(&block)

Defines a callback that will be run when TCP connection is closed before authentication finishes. Usually this means authentication failure. You can define only one callback.

@api public

on_recovery(&block)

Defines a callback that will be executed after AMQP connection has recovered after a network failure.. Only one callback can be defined (the one defined last replaces previously added ones).

@api public

on_tcp_connection_failure(&block)

Defines a callback that will be run when initial TCP connection fails. You can define only one callback.

@api public

on_tcp_connection_loss(&block)

Defines a callback that will be run when initial TCP connection fails. You can define only one callback.

@api public

port()

@return [String] Broker port this connection uses @api public

reconnect(force = false, period = 2)

Reconnect to the broker using current connection settings.

@param [Boolean] force Enforce immediate connection @param [Fixnum] period If given, reconnection will be delayed by this period, in seconds. @api public

reconnect_to(connection_string_or_options = {}, period = 2)

A version of reconnect that allows connecting to different endpoints (hosts). @see reconnect @api public

user()

Alias for username

username()

@return [String] Username used by this connection @api public

[Validate]