ruby_rabbitmq_janus 2.5.1 → 2.6.0.pre.226

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/bin/ruby_rabbitmq_janus +67 -0
  4. data/config/default.md +3 -0
  5. data/config/default.yml +6 -0
  6. data/lib/rrj/binary.rb +56 -0
  7. data/lib/rrj/errors/rabbit/base_event.rb +21 -0
  8. data/lib/rrj/errors/rabbit/listener/base.rb +29 -0
  9. data/lib/rrj/errors/rabbit/listener/from.rb +17 -0
  10. data/lib/rrj/errors/rabbit/listener/from_admin.rb +17 -0
  11. data/lib/rrj/errors/rabbit/listener/janus_instance.rb +17 -0
  12. data/lib/rrj/errors/rabbit/publisher/admin.rb +32 -0
  13. data/lib/rrj/errors/rabbit/publisher/base.rb +31 -0
  14. data/lib/rrj/errors/rabbit/publisher/exclusive.rb +33 -0
  15. data/lib/rrj/errors/rabbit/publisher/janus_instance.rb +23 -0
  16. data/lib/rrj/errors/rabbit/publisher/keepalive.rb +17 -0
  17. data/lib/rrj/errors/rabbit/publisher/non_exclusive.rb +33 -0
  18. data/lib/rrj/errors/rabbit/rabbit.rb +12 -6
  19. data/lib/rrj/info.rb +6 -5
  20. data/lib/rrj/init.rb +2 -2
  21. data/lib/rrj/janus/messages/message.rb +1 -1
  22. data/lib/rrj/janus/processus/event.rb +1 -1
  23. data/lib/rrj/janus/processus/keepalive/keepalive_thread.rb +3 -2
  24. data/lib/rrj/janus/responses/janus_instance.rb +28 -0
  25. data/lib/rrj/janus/responses/response.rb +1 -1
  26. data/lib/rrj/janus/transactions/admin.rb +1 -1
  27. data/lib/rrj/janus/transactions/handle.rb +1 -1
  28. data/lib/rrj/janus/transactions/transaction.rb +2 -2
  29. data/lib/rrj/models/concerns/janus_instance_callbacks.rb +9 -5
  30. data/lib/rrj/models/concerns/janus_instance_methods.rb +12 -0
  31. data/lib/rrj/rabbit/base_event.rb +47 -0
  32. data/lib/rrj/rabbit/connect.rb +12 -12
  33. data/lib/rrj/rabbit/{publish/listener.rb → listener/base.rb} +16 -18
  34. data/lib/rrj/rabbit/listener/from.rb +30 -0
  35. data/lib/rrj/rabbit/{publish/listener_admin.rb → listener/from_admin.rb} +6 -4
  36. data/lib/rrj/rabbit/listener/janus_instance.rb +36 -0
  37. data/lib/rrj/rabbit/{publish/publisher_admin.rb → publisher/admin.rb} +5 -10
  38. data/lib/rrj/rabbit/{publish/publisher.rb → publisher/base.rb} +10 -8
  39. data/lib/rrj/rabbit/{publish → publisher}/exclusive.rb +3 -3
  40. data/lib/rrj/rabbit/publisher/janus_instance.rb +27 -0
  41. data/lib/rrj/rabbit/{publish → publisher}/keepalive.rb +4 -2
  42. data/lib/rrj/rabbit/{publish → publisher}/non_exclusive.rb +3 -7
  43. data/lib/rrj/rabbit/rabbit.rb +1 -1
  44. data/lib/rrj/tools/gem/cluster.rb +0 -17
  45. data/lib/rrj/tools/gem/config.rb +9 -0
  46. data/lib/rrj/tools/gem/log.rb +3 -4
  47. data/lib/rrj/tools/gem/option.rb +2 -12
  48. data/lib/rrj/tools/replaces/admin.rb +4 -4
  49. data/lib/rrj/tools/replaces/handle.rb +6 -6
  50. data/lib/rrj/tools/replaces/replace.rb +6 -6
  51. data/lib/rrj/tools/replaces/session.rb +4 -4
  52. data/spec/factories/janus_instance.rb +1 -1
  53. data/spec/request/admin/request_allow_token_spec.rb +1 -0
  54. data/spec/request/admin/request_disallow_token_spec.rb +1 -0
  55. data/spec/request/admin/request_handle_info_spec.rb +1 -0
  56. data/spec/request/admin/request_list_handles_spec.rb +1 -0
  57. data/spec/request/admin/request_list_sessions_spec.rb +1 -0
  58. data/spec/request/admin/request_start_pcap_spec.rb +1 -0
  59. data/spec/request/admin/request_start_text2pcap_spec.rb +1 -0
  60. data/spec/request/admin/request_stop_pcap_spec.rb +1 -0
  61. data/spec/request/admin/request_stop_text2pcap_spec.rb +1 -0
  62. data/spec/request/base/request_attach_spec.rb +1 -1
  63. data/spec/request/base/request_create_spec.rb +2 -2
  64. data/spec/request/base/request_destroy_spec.rb +1 -1
  65. data/spec/request/base/request_detach_spec.rb +1 -1
  66. data/spec/request/base/request_info_spec.rb +2 -2
  67. data/spec/request/base/request_keepalive_spec.rb +1 -1
  68. data/spec/request/peer/request_offer_spec.rb +1 -1
  69. data/spec/request/peer/request_trickle_spec.rb +1 -1
  70. data/spec/request/peer/request_trickles_spec.rb +1 -1
  71. data/spec/rrj/{rrj_spec.rb → ruby_rabbitmq_janus_spec.rb} +21 -11
  72. data/spec/{thread/concurencies_spec.rb → ruby_rabbitmq_janus/janus/concurrencies/concurrency_spec.rb} +1 -1
  73. data/spec/{thread → ruby_rabbitmq_janus/janus/concurrencies}/keepalive_initializer_spec.rb +3 -2
  74. data/spec/{thread → ruby_rabbitmq_janus/janus/concurrencies}/keepalive_thread_spec.rb +3 -3
  75. data/spec/{thread → ruby_rabbitmq_janus/janus/concurrencies}/keepalive_timer_spec.rb +1 -1
  76. data/spec/{rrj/messages/messages_admin_spec.rb → ruby_rabbitmq_janus/janus/messages/admin_spec.rb} +1 -1
  77. data/spec/{rrj/messages/messages_message_spec.rb → ruby_rabbitmq_janus/janus/messages/message_spec.rb} +2 -1
  78. data/spec/{rrj/messages/messages_standard_spec.rb → ruby_rabbitmq_janus/janus/messages/standard_spec.rb} +1 -1
  79. data/spec/{rrj/responses/responses_admin_spec.rb → ruby_rabbitmq_janus/janus/responses/admin_spec.rb} +1 -1
  80. data/spec/{rrj/responses/responses_event_spec.rb → ruby_rabbitmq_janus/janus/responses/event_spec.rb} +3 -2
  81. data/spec/{rrj/responses/responses_response_spec.rb → ruby_rabbitmq_janus/janus/responses/response_spec.rb} +3 -3
  82. data/spec/{rrj/responses/responses_standard_spec.rb → ruby_rabbitmq_janus/janus/responses/standard_spec.rb} +4 -3
  83. data/spec/{rrj → ruby_rabbitmq_janus}/models/janus_instance_definition_spec.rb +2 -2
  84. data/spec/{rrj/models/janus_instance_transaction_spec.rb → ruby_rabbitmq_janus/models/janus_instance_spec.rb} +10 -9
  85. data/spec/{rrj → ruby_rabbitmq_janus}/rabbit/connect_spec.rb +1 -1
  86. data/spec/ruby_rabbitmq_janus/rabbit/listener/from_spec.rb +15 -0
  87. data/spec/{rrj → ruby_rabbitmq_janus}/rabbit/propertie_2_spec.rb +3 -3
  88. data/spec/{rrj → ruby_rabbitmq_janus}/rabbit/propertie_spec.rb +3 -3
  89. data/spec/ruby_rabbitmq_janus/rabbit/publisher/admin_spec.rb +12 -0
  90. data/spec/{rrj/rabbit/publish/base_publisher_spec.rb → ruby_rabbitmq_janus/rabbit/publisher/base_spec.rb} +3 -3
  91. data/spec/{rrj/rabbit/publish → ruby_rabbitmq_janus/rabbit/publisher}/exclusive_spec.rb +0 -0
  92. data/spec/{rrj/rabbit/publish → ruby_rabbitmq_janus/rabbit/publisher}/non_exclusive_spec.rb +0 -0
  93. data/spec/{rrj/tools/gem/rrj_cluster_spec.rb → ruby_rabbitmq_janus/tools/cluster_spec.rb} +1 -21
  94. data/spec/{rrj/tools/gem/rrj_config_spec.rb → ruby_rabbitmq_janus/tools/config_spec.rb} +26 -14
  95. data/spec/{rrj/tools/gem/rrj_log_spec.rb → ruby_rabbitmq_janus/tools/log_spec.rb} +10 -10
  96. data/spec/{rrj/tools/replace/replace_admin_spec.rb → ruby_rabbitmq_janus/tools/replaces/admin_spec.rb} +15 -15
  97. data/spec/{rrj/tools/replace/replace_handle_spec.rb → ruby_rabbitmq_janus/tools/replaces/handle_spec.rb} +14 -14
  98. data/spec/{rrj/tools/replace → ruby_rabbitmq_janus/tools/replaces}/replace_spec.rb +16 -17
  99. data/spec/{rrj/tools/replace/replace_session_spec.rb → ruby_rabbitmq_janus/tools/replaces/session_spec.rb} +14 -14
  100. data/spec/{rrj/tools/replace → ruby_rabbitmq_janus/tools}/type_spec.rb +19 -19
  101. data/spec/spec_helper.rb +1 -1
  102. data/spec/support/examples_request.rb +1 -1
  103. data/spec/support/type.rb +3 -3
  104. metadata +83 -59
  105. data/lib/rrj/errors/rabbit/publish/admin.rb +0 -30
  106. data/lib/rrj/errors/rabbit/publish/base_publisher.rb +0 -23
  107. data/lib/rrj/errors/rabbit/publish/exclusive.rb +0 -31
  108. data/lib/rrj/errors/rabbit/publish/listener.rb +0 -30
  109. data/lib/rrj/errors/rabbit/publish/non_exclusive.rb +0 -31
  110. data/lib/rrj/errors/rabbit/publish/publisher.rb +0 -38
  111. data/lib/rrj/rabbit/publish/base_publisher.rb +0 -50
  112. data/spec/rrj/rabbit/publish/admin_spec.rb +0 -12
  113. data/spec/rrj/rabbit/publish/listener_spec.rb +0 -15
  114. data/spec/rrj/rabbit/publish/publisher_spec.rb +0 -13
@@ -11,12 +11,18 @@ module RubyRabbitmqJanus
11
11
  end
12
12
  end
13
13
 
14
+ require 'rrj/errors/rabbit/base_event'
14
15
  require 'rrj/errors/rabbit/connect'
15
16
  require 'rrj/errors/rabbit/propertie'
16
17
 
17
- require 'rrj/errors/rabbit/publish/base_publisher'
18
- require 'rrj/errors/rabbit/publish/admin'
19
- require 'rrj/errors/rabbit/publish/exclusive'
20
- require 'rrj/errors/rabbit/publish/listener'
21
- require 'rrj/errors/rabbit/publish/non_exclusive'
22
- require 'rrj/errors/rabbit/publish/publisher'
18
+ require 'rrj/errors/rabbit/listener/base'
19
+ require 'rrj/errors/rabbit/listener/from'
20
+ require 'rrj/errors/rabbit/listener/from_admin'
21
+ require 'rrj/errors/rabbit/listener/janus_instance'
22
+
23
+ require 'rrj/errors/rabbit/publisher/base'
24
+ require 'rrj/errors/rabbit/publisher/admin'
25
+ require 'rrj/errors/rabbit/publisher/exclusive'
26
+ require 'rrj/errors/rabbit/publisher/janus_instance'
27
+ require 'rrj/errors/rabbit/publisher/keepalive'
28
+ require 'rrj/errors/rabbit/publisher/non_exclusive'
data/lib/rrj/info.rb CHANGED
@@ -6,7 +6,7 @@
6
6
  # Define constant to gem.
7
7
  module RubyRabbitmqJanus
8
8
  # Define version to gem
9
- VERSION = '2.5.1'
9
+ VERSION = '2.6.0'
10
10
 
11
11
  # Name to gem
12
12
  GEM_NAME = 'ruby_rabbitmq_janus'
@@ -35,11 +35,9 @@ module RubyRabbitmqJanus
35
35
  # Define homepage
36
36
  HOMEPAGE = 'https://github.com/dazzl-tv/ruby-rabbitmq-janus'
37
37
 
38
- # Define a post install message
39
- POST_INSTALL = \
38
+ # Banner dazzl
39
+ BANNER = \
40
40
  "# ====================================================== #\n" \
41
- "# Thanks for installing RRJ ! #\n" \
42
- "# #{HOMEPAGE}. #\n" \
43
41
  "# ;;;;;;;;;;;:. #\n" \
44
42
  "# ;;;;;;;;;;;;;;;;;; #\n" \
45
43
  "# ;;;;;;;;;;;:;;;;;;;; #\n" \
@@ -54,4 +52,7 @@ module RubyRabbitmqJanus
54
52
  "# ;;;;;;;;;;;;;;;;; AAAAA ZZ ZZ LL #\n" \
55
53
  "# ;;;;;;;;;;;;;, A A ZZZZZZZ ZZZZZZZ LLLLLLL #\n" \
56
54
  '# ====================================================== #'
55
+
56
+ # Define a post install message
57
+ POST_INSTALL = "#{HOMEPAGE}\n#{BANNER}"
57
58
  end
data/lib/rrj/init.rb CHANGED
@@ -39,8 +39,8 @@ module RubyRabbitmqJanus
39
39
  # => #<RubyRabbitmqJanus::RRJ:0x007 @session=123>
40
40
  def initialize
41
41
  @option = Tools::Option.new
42
- rescue => error
43
- raise Errors::RRJ::InstanciateGem, error
42
+ rescue => exception
43
+ raise Errors::RRJ::InstanciateGem, exception
44
44
  end
45
45
 
46
46
  # Start a transaction with Janus. Request use session_id information.
@@ -54,7 +54,7 @@ module RubyRabbitmqJanus
54
54
  # Return request to json format
55
55
  #
56
56
  # @return [String] Request to JSON format
57
- def to_json
57
+ def to_json(*_args)
58
58
  @request.to_json
59
59
  rescue
60
60
  raise Errors::Janus::Message::ToJson
@@ -44,7 +44,7 @@ module RubyRabbitmqJanus
44
44
  private
45
45
 
46
46
  def transaction_running
47
- publisher = Rabbit::Publisher::Listener.new(rabbit)
47
+ publisher = Rabbit::Listener::From.new(rabbit)
48
48
  @thread.thread_variable_set(NAME_VAR, publisher)
49
49
  end
50
50
  end
@@ -125,7 +125,8 @@ module RubyRabbitmqJanus
125
125
  "Lookup Janus Instance model by session [#{@session}]"
126
126
  Models::JanusInstance.find_by_session(@session)
127
127
  end
128
- rescue StandardError => e
128
+ rescue StandardError => exception
129
+ Tools::Log.debug exception
129
130
  Tools::Log.instance.warn \
130
131
  "find_model: rescuing from error #{e.message}"
131
132
  nil
@@ -137,7 +138,7 @@ module RubyRabbitmqJanus
137
138
  end
138
139
 
139
140
  def publisher
140
- Rabbit::Publisher::PublishKeepalive.new(@rabbit.channel)
141
+ Rabbit::Publisher::Keepalive.new(@rabbit.channel)
141
142
  end
142
143
 
143
144
  def response_session
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rrj/janus/responses/response'
4
+
5
+ module RubyRabbitmqJanus
6
+ module Janus
7
+ module Responses
8
+ # Janus Instanece response.
9
+ class JanusInstance < Response
10
+ def event
11
+ 'JanusInstance update'
12
+ end
13
+
14
+ def id
15
+ request['id']
16
+ end
17
+
18
+ def instance
19
+ JanusInstance.find(id)
20
+ end
21
+
22
+ def enable
23
+ request['enable']
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -25,7 +25,7 @@ module RubyRabbitmqJanus
25
25
  # Return request to json format
26
26
  #
27
27
  # @return [String] Response to JSON format
28
- def to_json
28
+ def to_json(*_args)
29
29
  @request.to_json
30
30
  rescue
31
31
  raise Errors::Janus::Response::ToJson
@@ -18,7 +18,7 @@ module RubyRabbitmqJanus
18
18
  # Begin connection with RabbitMQ
19
19
  def connect
20
20
  rabbit.transaction_short do
21
- @publisher = Rabbit::Publisher::PublisherAdmin.new(rabbit.channel)
21
+ @publisher = Rabbit::Publisher::Admin.new(rabbit.channel)
22
22
  yield
23
23
  end
24
24
  rescue
@@ -88,7 +88,7 @@ module RubyRabbitmqJanus
88
88
 
89
89
  def read_response_exclusive
90
90
  chan = rabbit.channel
91
- tmp_publish = Rabbit::Publisher::PublishExclusive.new(chan, '')
91
+ tmp_publish = Rabbit::Publisher::Exclusive.new(chan, '')
92
92
  tmp_publish.publish(yield)
93
93
  end
94
94
 
@@ -32,11 +32,11 @@ module RubyRabbitmqJanus
32
32
  @publisher = if @exclusive
33
33
  Tools::Log.instance.debug \
34
34
  'Choose an queue Exclusive : ampq.gen-xxx'
35
- Rabbit::Publisher::PublishExclusive.new(chan, '')
35
+ Rabbit::Publisher::Exclusive.new(chan, '')
36
36
  else
37
37
  Tools::Log.instance.debug \
38
38
  'Choose an queue non Exclusive : to-janus'
39
- Rabbit::Publisher::PublishNonExclusive.new(chan)
39
+ Rabbit::Publisher::NonExclusive.new(chan)
40
40
  end
41
41
  end
42
42
 
@@ -34,14 +34,11 @@ module RubyRabbitmqJanus
34
34
  private
35
35
 
36
36
  def create_a_session_in_janus_instance
37
- info_instance('Create session')
38
- janus_instance = keepalive_object_new
39
- set(session: janus_instance.session)
37
+ RubyRabbitmqJanus::Rabbit::Publisher::JanusInstance.new.publish(message)
40
38
  end
41
39
 
42
40
  def destroy_a_session_in_janus_instance
43
- info_instance('Detaching session')
44
- unset(%I[thread thread_adm session])
41
+ RubyRabbitmqJanus::Rabbit::Publisher::JanusInstance.new.publish(message)
45
42
  end
46
43
 
47
44
  def keepalive_object
@@ -59,6 +56,13 @@ module RubyRabbitmqJanus
59
56
  def info_instance(text)
60
57
  Tools::Log.instance.debug "#{text} in Janus Instance [##{instance}]"
61
58
  end
59
+
60
+ def message
61
+ {
62
+ id: id.to_s,
63
+ enable: enable
64
+ }
65
+ end
62
66
  end
63
67
  end
64
68
  end
@@ -45,6 +45,18 @@ module RubyRabbitmqJanus
45
45
  end
46
46
  end
47
47
 
48
+ def create_keepalive
49
+ ::Log.info 'Create session'
50
+ janus_instance = keepalive_object_new
51
+ set(session: janus_instance.session, enable: true)
52
+ end
53
+
54
+ def stop_keepalive
55
+ ::Log.info 'Destroy session'
56
+ unset(%I[thread thread_adm session])
57
+ set(enable: false)
58
+ end
59
+
48
60
  private
49
61
 
50
62
  def search_initializer(options)
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'semaphore'
4
+
5
+ module RubyRabbitmqJanus
6
+ module Rabbit
7
+ # Define an module for create an publisher
8
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
9
+
10
+ # # Parent class for all publisher
11
+ # This element send and read a message in rabbitmq Queue
12
+ #
13
+ # @!attribute [r] response
14
+ # @return [RubyRabbitmqJanus::Janus::Responses::Response]
15
+ # Given a Janus response
16
+ #
17
+ # @abstract Publish message in RabbitMQ
18
+ class BaseEvent
19
+ attr_reader :responses
20
+
21
+ # Define a base publisher
22
+ def initialize
23
+ @responses = []
24
+ @semaphore = Semaphore.new
25
+ @lock = Mutex.new
26
+ rescue
27
+ raise Errors::Rabbit::BaseEvent::Initialize
28
+ end
29
+
30
+ private
31
+
32
+ attr_accessor :semaphore, :lock
33
+
34
+ def return_response
35
+ @semaphore.wait
36
+ response = nil
37
+ @lock.synchronize do
38
+ response = @responses.shift
39
+ end
40
+ response
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ require 'rrj/rabbit/publisher/base'
47
+ require 'rrj/rabbit/listener/base'
@@ -11,8 +11,8 @@ module RubyRabbitmqJanus
11
11
  # Initialize connection to server RabbitMQ
12
12
  def initialize
13
13
  @rabbit = Bunny.new(read_options_server.merge!(option_log_rabbit))
14
- rescue => error
15
- raise Errors::Rabbit::Connect::Initialize, error
14
+ rescue => exception
15
+ raise Errors::Rabbit::Connect::Initialize, exception
16
16
  end
17
17
 
18
18
  # Create an transaction with rabbitmq and close after response is received
@@ -20,37 +20,37 @@ module RubyRabbitmqJanus
20
20
  response = transaction_long { yield }
21
21
  close
22
22
  response
23
- rescue => error
24
- raise Errors::Rabbit::Connect::TransactionShort, error
23
+ rescue => exception
24
+ raise Errors::Rabbit::Connect::TransactionShort, exception
25
25
  end
26
26
 
27
27
  # Create an transaction with rabbitmq and not close
28
28
  def transaction_long
29
29
  start
30
30
  yield
31
- rescue => error
32
- raise Errors::Rabbit::Connect::TransactionLong, error
31
+ rescue => exception
32
+ raise Errors::Rabbit::Connect::TransactionLong, exception
33
33
  end
34
34
 
35
35
  # Openning a connection with Rabbitmq
36
36
  def start
37
37
  @rabbit.start
38
- rescue => error
39
- raise Errors::Rabbit::Connect::Start, error
38
+ rescue => exception
39
+ raise Errors::Rabbit::Connect::Start, exception
40
40
  end
41
41
 
42
42
  # Close connection to server RabbitMQ
43
43
  def close
44
44
  @rabbit.close
45
- rescue => error
46
- raise Errors::Rabbit::Connect::Close, error
45
+ rescue => exception
46
+ raise Errors::Rabbit::Connect::Close, exception
47
47
  end
48
48
 
49
49
  # Create an channel
50
50
  def channel
51
51
  @rabbit.create_channel
52
- rescue => error
53
- raise Errors::Rabbit::Connect::Channel, error
52
+ rescue => exception
53
+ raise Errors::Rabbit::Connect::Channel, exception
54
54
  end
55
55
 
56
56
  private
@@ -4,13 +4,9 @@
4
4
 
5
5
  module RubyRabbitmqJanus
6
6
  module Rabbit
7
- module Publisher
8
- # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
9
- #
10
- # This publisher don't post message. Is listen just an standard queue to
11
- # Janus. By default is "from-janus". It's a parameter in config to this
12
- # gem.
13
- class Listener < BasePublisher
7
+ module Listener
8
+ # Base for listeners
9
+ class Base < RubyRabbitmqJanus::Rabbit::BaseEvent
14
10
  # Define an publisher
15
11
  #
16
12
  # @param [String] rabbit Information connection to rabbitmq server
@@ -31,22 +27,13 @@ module RubyRabbitmqJanus
31
27
  response = @responses.shift
32
28
  end
33
29
  yield response.event, response
34
- rescue
30
+ rescue => exception
31
+ p exception
35
32
  raise Errors::Rabbit::Listener::ListenEvents
36
33
  end
37
34
 
38
35
  private
39
36
 
40
- def subscribe_queue
41
- reply = @rabbit.queue(Tools::Config.instance.queue_from)
42
- @rabbit.prefetch(1)
43
- reply.bind(binding).subscribe(opts_subs) do |info, prop, payload|
44
- Tools::Log.instance.info \
45
- "[X] Message reading ##{prop['correlation_id']}"
46
- synchronize_response(info, payload)
47
- end
48
- end
49
-
50
37
  def binding
51
38
  @rabbit.direct('amq.direct')
52
39
  end
@@ -69,7 +56,18 @@ module RubyRabbitmqJanus
69
56
  @rabbit.acknowledge(info.delivery_tag, false)
70
57
  semaphore.signal
71
58
  end
59
+
60
+ def info_subscribe(info, prop, payload)
61
+ Tools::Log.instance.debug info
62
+ Tools::Log.instance.info \
63
+ "[X] Message reading ##{prop['correlation_id']}"
64
+ Tools::Log.instance.debug payload
65
+ end
72
66
  end
73
67
  end
74
68
  end
75
69
  end
70
+
71
+ require 'rrj/rabbit/listener/from'
72
+ require 'rrj/rabbit/listener/from_admin'
73
+ require 'rrj/rabbit/listener/janus_instance'
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # :reek:TooManyStatements
4
+
5
+ module RubyRabbitmqJanus
6
+ module Rabbit
7
+ module Listener
8
+ # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
9
+ #
10
+ # This publisher don't post message. Is listen just an standard queue to
11
+ # Janus. By default is "from-janus". It's a parameter in config to this
12
+ # gem.
13
+ class From < Base
14
+ private
15
+
16
+ def subscribe_queue
17
+ reply = @rabbit.queue(Tools::Config.instance.queue_from)
18
+ @rabbit.prefetch(1)
19
+ reply.bind(binding).subscribe(opts_subs) do |info, prop, payload|
20
+ info_subscribe(info, prop, payload)
21
+ synchronize_response(info, payload)
22
+ end
23
+ rescue => exception
24
+ raise RubyRabbitmqJanus::Errors::Rabbit::Listener::From::ListenEvents,
25
+ exception
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -4,19 +4,21 @@
4
4
 
5
5
  module RubyRabbitmqJanus
6
6
  module Rabbit
7
- module Publisher
7
+ module Listener
8
8
  # Listener to admin queue
9
- class ListenerAdmin < Listener
9
+ class FromAdmin < From
10
10
  private
11
11
 
12
12
  def subscribe_queue
13
13
  reply = @rabbit.queue(Tools::Config.instance.queue_admin_from)
14
14
  @rabbit.prefetch(1)
15
15
  reply.bind(binding).subscribe(opts_subs) do |info, prop, payload|
16
- Tools::Log.instance.info \
17
- "[X] Message ADMIN reading ##{prop['correlation_id']}"
16
+ info_subscribe(info, prop, payload)
18
17
  synchronize_response(info, payload)
19
18
  end
19
+ rescue => exception
20
+ raise RubyRabbitmqJanus::Errors::Rabbit::Listener::From::ListenEvents,
21
+ exception
20
22
  end
21
23
  end
22
24
  end