Class: RubyRabbitmqJanus::RRJ
- Inherits:
-
Object
- Object
- RubyRabbitmqJanus::RRJ
- Defined in:
- lib/rrj/init.rb
Overview
# RubyRabbitmqJanus - RRJ
Initialize RRJ gem and create automatically a session with janus and sending a keepalive message. The Time To Live is configured in yaml configuration file config/default.yml or if you a customize config in config/ruby-rabbitmq-janus.yml.
Instance Attribute Summary collapse
-
#session ⇒ Fixnum
readonly
Return an session number created when this gem is instanciate.
Instance Method Summary collapse
-
#cleanup_connection ⇒ Object
Delete all resources to JanusInstance reference.
-
#initialize ⇒ RRJ
constructor
Return a new instance of RubyRabbitmqJanus.
-
#start_transaction(exclusive = true, options = {}) ⇒ Object
Start a transaction with Janus.
-
#start_transaction_handle(exclusive = true, options = {}) ⇒ Fixnum
Start a transaction with Janus.
Constructor Details
#initialize ⇒ RRJ
Return a new instance of RubyRabbitmqJanus.
40 41 42 43 44 |
# File 'lib/rrj/init.rb', line 40 def initialize @option = Tools::Option.new rescue => error raise Errors::RRJ::InstanciateGem, error end |
Instance Attribute Details
#session ⇒ Fixnum (readonly)
Return an session number created when this gem is instanciate. It’s janus who creates the number of the session.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/rrj/init.rb', line 32 class RRJ attr_reader :session # Return a new instance of RubyRabbitmqJanus. # # @example Create a instance to this gem # @rrj = RubyRabbitmqJanus::RRJ.new # => #<RubyRabbitmqJanus::RRJ:0x007 @session=123> def initialize @option = Tools::Option.new rescue => error raise Errors::RRJ::InstanciateGem, error end # Start a transaction with Janus. Request use session_id information. # # @param [Boolean] exclusive Choose if message is storage in exclusive queue # @param [Hash] options # Give a session number for use another session in Janus # # @example Get Janus information # @rrj.start_transaction do |transaction| # response = transaction.publish_message('base::info').to_hash # end # # @since 2.0.0 def start_transaction(exclusive = true, = {}) session = @option.use_current_session?() transaction = Janus::Transactions::Session.new(exclusive, session) transaction.connect { yield(transaction) } rescue raise Errors::RRJ::StartTransaction.new(exclusive, ) end # Start a transaction with Janus. Request used session_id/handle_id # information. # # @param [Boolean] exclusive Choose if message is storage in exclusive queue # @param [Hash] options # Give a session number for use another session in Janus # # @note Use transaction.detach for closing handle in Janus # # @example Send request trickles for exclusive queue # @cde = { 'sdpMid' => '...', sdpMLineIndex => 0, 'candidate' => '...' } # @rrj.start_transaction_handle do |transaction| # transaction.publish_message('base::trickle', @cde) # end # # @example Send request trickles for non exclusive queue # @cde = { 'sdpMid' => '...', sdpMLineIndex => 0, 'candidate' => '...' } # @rrj.start_transaction_handle(false) do |transaction| # transaction.publish_message('base::trickle', @cde) # end # # @return [Fixnum] Handle used for transaction # # @since 2.0.0 def start_transaction_handle(exclusive = true, = {}) session = @option.use_current_session?() handle = @option.use_current_handle?() instance = ['instance'] || 1 transaction = Janus::Transactions::Handle.new(exclusive, session, handle, instance) transaction.connect { yield(transaction) } rescue raise Errors::RRJ::StartTransactionHandle, exclusive, end # Delete all resources to JanusInstance reference. # Warning: All data in database and Janus Instance is delete # # @since 2.1.0 def cleanup_connection Models::JanusInstance.destroys rescue raise Errors::RRJ::CleanupConnection end private attr_reader :option end |
Instance Method Details
#cleanup_connection ⇒ Object
Delete all resources to JanusInstance reference. Warning: All data in database and Janus Instance is delete
107 108 109 110 111 |
# File 'lib/rrj/init.rb', line 107 def cleanup_connection Models::JanusInstance.destroys rescue raise Errors::RRJ::CleanupConnection end |
#start_transaction(exclusive = true, options = {}) ⇒ Object
Start a transaction with Janus. Request use session_id information.
58 59 60 61 62 63 64 |
# File 'lib/rrj/init.rb', line 58 def start_transaction(exclusive = true, = {}) session = @option.use_current_session?() transaction = Janus::Transactions::Session.new(exclusive, session) transaction.connect { yield(transaction) } rescue raise Errors::RRJ::StartTransaction.new(exclusive, ) end |
#start_transaction_handle(exclusive = true, options = {}) ⇒ Fixnum
Use transaction.detach for closing handle in Janus
Start a transaction with Janus. Request used session_id/handle_id information.
90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/rrj/init.rb', line 90 def start_transaction_handle(exclusive = true, = {}) session = @option.use_current_session?() handle = @option.use_current_handle?() instance = ['instance'] || 1 transaction = Janus::Transactions::Handle.new(exclusive, session, handle, instance) transaction.connect { yield(transaction) } rescue raise Errors::RRJ::StartTransactionHandle, exclusive, end |