lib/bunny/session.rb in bunny-2.16.1 vs lib/bunny/session.rb in bunny-2.17.0
- old
+ new
@@ -87,10 +87,11 @@
# @return [Logger]
attr_reader :logger
# @return [Integer] Timeout for blocking protocol operations (queue.declare, queue.bind, etc), in milliseconds. Default is 15000.
attr_reader :continuation_timeout
attr_reader :network_recovery_interval
+ attr_reader :connection_name
attr_accessor :socket_configurator
# @param [String, Hash] connection_string_or_opts Connection string or a hash of connection options
# @param [Hash] optz Extra options not related to connection
#
@@ -126,10 +127,11 @@
# @option connection_string_or_opts [Boolean] :recover_from_connection_close (true) Should this connection recover after receiving a server-sent connection.close (e.g. connection was force closed)?
# @option connection_string_or_opts [Object] :session_error_handler (Thread.current) Object which responds to #raise that will act as a session error handler. Defaults to Thread.current, which will raise asynchronous exceptions in the thread that created the session.
#
# @option optz [String] :auth_mechanism ("PLAIN") Authentication mechanism, PLAIN or EXTERNAL
# @option optz [String] :locale ("PLAIN") Locale RabbitMQ should use
+ # @option optz [String] :connection_name (nil) Client-provided connection name, if any. Note that the value returned does not uniquely identify a connection and cannot be used as a connection identifier in HTTP API requests.
#
# @see http://rubybunny.info/articles/connecting.html Connecting to RabbitMQ guide
# @see http://rubybunny.info/articles/tls.html TLS/SSL guide
# @api public
def initialize(connection_string_or_opts = ENV['RABBITMQ_URL'], optz = Hash.new)
@@ -196,10 +198,12 @@
@channel_max = @client_channel_max
@heartbeat_sender = nil
@client_heartbeat = self.heartbeat_from(opts)
client_props = opts[:properties] || opts[:client_properties] || {}
+ @connection_name = client_props[:connection_name] || opts[:connection_name]
@client_properties = DEFAULT_CLIENT_PROPERTIES.merge(client_props)
+ .merge(connection_name: connection_name)
@mechanism = normalize_auth_mechanism(opts.fetch(:auth_mechanism, "PLAIN"))
@credentials_encoder = credentials_encoder_for(@mechanism)
@locale = @opts.fetch(:locale, DEFAULT_LOCALE)
@mutex_impl = @opts.fetch(:mutex_impl, Monitor)