Class: RubyRabbitmqJanus::Janus::Transactions::Session

Inherits:
Transaction
  • Object
show all
Defined in:
lib/rrj/janus/transactions/session.rb

Overview

# Manage a transaction

Manage a transaction with message if contains a session identifier

Author:

Direct Known Subclasses

Admin

Instance Method Summary collapse

Constructor Details

#initialize(exclusive, session) ⇒ Session

Initialize a transaction with handle

Parameters:

  • session (Fixnum)

    Use a session identifier for created message



16
17
18
19
20
21
# File 'lib/rrj/janus/transactions/session.rb', line 16

def initialize(exclusive, session)
  super(session)
  @exclusive = exclusive
rescue
  raise Errors::Janus::TransactionSessions::Initialize
end

Instance Method Details

#connect { ... } ⇒ Object

Opening a short transaction with rabbitmq and close when is ending

Yields:

  • Send a message to Janus



26
27
28
29
30
31
32
33
# File 'lib/rrj/janus/transactions/session.rb', line 26

def connect
  rabbit.transaction_short do
    choose_queue
    yield
  end
rescue
  raise Errors::Janus::TransactionSessions::Connect
end

#publish_message(type, options = {}) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/rrj/janus/transactions/session.rb', line 35

def publish_message(type, options = {})
  msg = Janus::Messages::Standard.new(type, opts.merge!(options))
  response = read_response(publisher.publish(msg))
  Janus::Responses::Standard.new(response)
rescue
  raise Errors::Janus::TransactionSessions::PublishMessage
end