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_disconnection}
@api public
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)
Locales server supports
@see bit.ly/htCzCX AMQP 0.9.1 protocol documentation (Section 1.4.2.1.3)
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)
Overrides authentication failure exception to one that inherits from AMQP::Error and thus is backwards compatible.
@private @api plugin @return [Class] AMQP::PossibleAuthenticationFailureError
# File lib/amqp/session.rb, line 296 def self.authentication_failure_exception_class @authentication_failure_exception_class ||= AMQP::PossibleAuthenticationFailureError end
@group Connecting, reconnecting, disconnecting
# File lib/amqp/session.rb, line 38 def initialize(*args, &block) super(*args, &block) @client_properties.merge!({ :platform => ::RUBY_DESCRIPTION, :product => "AMQP gem", :information => "http://github.com/ruby-amqp/amqp", :version => AMQP::VERSION }) end
Overrides TCP connection failure exception to one that inherits from AMQP::Error and thus is backwards compatible.
@private @api plugin @return [Class] AMQP::TCPConnectionFailed
# File lib/amqp/session.rb, line 285 def self.tcp_connection_failure_exception_class @tcp_connection_failure_exception_class ||= AMQP::TCPConnectionFailed end
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
# File lib/amqp/session.rb, line 267 def auto_recover super end
@return [Boolean] whether connection is in the automatic recovery mode @api public
# File lib/amqp/session.rb, line 255 def auto_recovering? super end
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
# File lib/amqp/session.rb, line 238 def before_recovery(&block) super(&block) end
@return [AMQP::Broker] Broker this connection is established with
# File lib/amqp/session.rb, line 147 def broker @broker ||= AMQP::Broker.new(@server_properties) end
@return [String] Broker endpoint in the form of HOST:PORT/VHOST @api public
# File lib/amqp/session.rb, line 70 def broker_endpoint "#{self.hostname}:#{self.port}/#{self.vhost}" end
@return [Boolean] true if this AMQP connection is currently open @api plugin
# File lib/amqp/session.rb, line 51 def connected? self.opened? end
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
# File lib/amqp/session.rb, line 116 def disconnect(reply_code = 200, reply_text = "Goodbye", &block) # defined here to make this method appear in YARD documentation. MK. super(reply_code, reply_text, &block) end
@private @api plugin
# File lib/amqp/session.rb, line 218 def handle_connection_interruption super end
@return [String] Broker hostname this connection uses @api public
# File lib/amqp/session.rb, line 57 def hostname @settings[:host] end
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
# File lib/amqp/session.rb, line 174 def on_closed(&block) # defined here to make this method appear in YARD documentation. MK. super(&block) end
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
# File lib/amqp/session.rb, line 210 def on_connection_interruption(&block) super(&block) end
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
# File lib/amqp/session.rb, line 228 def on_error(&block) super(&block) end
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
# File lib/amqp/session.rb, line 161 def on_open(&block) # defined here to make this method appear in YARD documentation. MK. super(&block) end
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
# File lib/amqp/session.rb, line 201 def on_possible_authentication_failure(&block) # defined here to make this method appear in YARD documentation. MK. super(&block) end
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
# File lib/amqp/session.rb, line 247 def on_recovery(&block) super(&block) end
Defines a callback that will be run when initial TCP connection fails. You can define only one callback.
@api public
# File lib/amqp/session.rb, line 183 def on_tcp_connection_failure(&block) # defined here to make this method appear in YARD documentation. MK. super(&block) end
Defines a callback that will be run when initial TCP connection fails. You can define only one callback.
@api public
# File lib/amqp/session.rb, line 192 def on_tcp_connection_loss(&block) # defined here to make this method appear in YARD documentation. MK. super(&block) end
@return [String] Broker port this connection uses @api public
# File lib/amqp/session.rb, line 64 def port @settings[:port] end
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
# File lib/amqp/session.rb, line 87 def reconnect(force = false, period = 2) # we do this to make sure this method shows up in our documentation # this method is too important to leave out and YARD currently does not # support cross-referencing to dependencies. MK. super(force, period) end
A version of reconnect that allows connecting to different endpoints (hosts). @see reconnect @api public
# File lib/amqp/session.rb, line 97 def reconnect_to(connection_string_or_options = {}, period = 2) opts = case connection_string_or_options when String then AMQP::Client.parse_connection_uri(connection_string_or_options) when Hash then connection_string_or_options else Hash.new end super(opts, period) end
@return [String] Username used by this connection @api public
# File lib/amqp/session.rb, line 76 def username @settings[:user] end
Generated with the Darkfish Rdoc Generator 2.