code: def bind(queue_name, exchange_name, *routing_keys, &block)
        queue = create_queue(queue_name, exchange_name,
                             queue_options: {durable: true},
                             routing_keys:  routing_keys)
        subscribe(queue, &block) if block_given?
      end
docs: Initialize a new BunnyClient instance. Note that a connection is not established until any other method is called
  
   @param [String, Hash] _url Server URL or options hash
   @param [Hash] _bunny_options optional Bunny connection options
   @see Bunny.new for connection options
   Convenience method that finds or creates a named queue, binds to an exchange, and subscribes to messages.
   If a block is provided, it will be called by the consumer each time a message is received.
  
   @param [String] queue_name name of the queue
   @param [String] exchange_name name of the AMQP exchange. Note that existing exchanges must be declared as Topic
     exchanges; otherwise, an error will occur
   @param [Array<String>] routing_keys list of routing keys to be bound to the queue for the specified exchange.
   @yieldparam [String] payload message text
   @return [Bunny::Consumer] Bunny consumer interface