Sha256: 26d50d0382d0861056219f96e5477c79f06d2778f76d9c84ca7e3d9d8905d9a2

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

module RubyRabbitmqJanus
  module Janus
    module Transactions
      # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
      # This class work with janus and send a series of message
      class Handle < Session
        # Initialize connection to Rabbit and Janus
        def handle_connect(exclusive)
          rabbit.transaction_long do
            choose_queue(exclusive)
            create_handle
            yield
          end
        end

        # Initialize connection to Rabbit and Janus and close after sending an received
        # a response
        def handle_connect_and_stop(exclusive)
          rabbit.transaction_short do
            choose_queue(exclusive)
            create_handle
            yield
          end
        end

        # Stop an handle running
        def handle_running_stop
          publish_message_handle('base::detach')
        end

        # Publish an message in handle
        def publish_message_handle(type, options = {})
          opts = { 'session_id' => session, 'handle_id' => handle }
          msg = Janus::Message.new(type, opts.merge!(options))
          Janus::Response.new(publish.send_a_message(msg))
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby_rabbitmq_janus-1.0.5 lib/rrj/janus/transactions/handle.rb
ruby_rabbitmq_janus-1.0.4 lib/rrj/janus/transactions/handle.rb
ruby_rabbitmq_janus-1.0.3 lib/rrj/janus/transactions/handle.rb