ruby_rabbitmq_janus 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generators/ruby_rabbitmq_janus/initializer_generator.rb +3 -1
- data/lib/rrj/info.rb +1 -1
- data/lib/rrj/init.rb +3 -3
- data/lib/rrj/janus/processus/event.rb +24 -9
- data/lib/rrj/janus/transactions/admin.rb +1 -1
- data/lib/rrj/rabbit/publish/admin.rb +1 -1
- data/listen.rb +16 -15
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 315daf05da37138a7cbd49ee535669ade8fba813
|
4
|
+
data.tar.gz: 00bf29601cb4f70693875466db4a52f5aa488188
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d931cd33d7c2a7ceac9fb2ed395f188fc9fb7d41637462f02c3e5afffa2493e3cb431701c5036f26f25ac61b7beb1a83eedf47a561604be8b7c6e725a07af4f
|
7
|
+
data.tar.gz: 256f28e5db381ad148dc8c2ab7c8a8a558e97e6a60666b2775b0d865bc73e261caf66bc0d2776310dc3d8d4f3f5206fd30b4c4f57d08c2871b80e4e8d17aa70c
|
@@ -9,7 +9,9 @@ module RubyRabbitmqJanus
|
|
9
9
|
# Create an initializer
|
10
10
|
def copy_initializer
|
11
11
|
initializer 'ruby_rabbitmq_janus.rb' do
|
12
|
-
"# frozen_string_literal: true\n\n
|
12
|
+
"# frozen_string_literal: true\n\n" \
|
13
|
+
"::RRJ = RubyRabbitmqJanus::RRJ.new\n"\
|
14
|
+
'::Events = RubyRabbitmqJanus::Janus::Concurrencies::Event.instance'
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
data/lib/rrj/info.rb
CHANGED
data/lib/rrj/init.rb
CHANGED
@@ -93,7 +93,7 @@ module RubyRabbitmqJanus
|
|
93
93
|
|
94
94
|
# Define an handle transaction and establish connection with janus
|
95
95
|
def start_handle(exclusive = false)
|
96
|
-
@transaction
|
96
|
+
@transaction = Janus::Transactions::Handle.new(@session)
|
97
97
|
@transaction.handle_connect(exclusive) { yield }
|
98
98
|
rescue => error
|
99
99
|
raise Errors::RRJErrorHandle, error
|
@@ -101,7 +101,7 @@ module RubyRabbitmqJanus
|
|
101
101
|
|
102
102
|
# Define an handle admin transaction and establish connection with janus
|
103
103
|
def start_handle_admin
|
104
|
-
@transaction
|
104
|
+
@transaction = Janus::Transactions::Admin.new(@session)
|
105
105
|
@transaction.handle_connect { yield }
|
106
106
|
rescue => error
|
107
107
|
raise Errors::RRJErrorHandle, error
|
@@ -114,7 +114,7 @@ module RubyRabbitmqJanus
|
|
114
114
|
|
115
115
|
# Start an short transaction, this queue is not exclusive
|
116
116
|
def handle_message_simple(type, replace = {}, add = {})
|
117
|
-
@transaction
|
117
|
+
@transaction = Janus::Transactions::Handle.new(@session)
|
118
118
|
@transaction.handle_connect_and_stop(false) do
|
119
119
|
message_handle(type, replace, add).for_plugin
|
120
120
|
end
|
@@ -5,30 +5,45 @@ module RubyRabbitmqJanus
|
|
5
5
|
module Janus
|
6
6
|
module Concurrencies
|
7
7
|
# For listen standard queue ("from-janus" by default)
|
8
|
-
|
8
|
+
# :reek:InstanceVariableAssumption and :reek:NilCheck
|
9
|
+
# :reek:TooManyInstanceVariables and :reek:TooManyStatements
|
10
|
+
class Event
|
9
11
|
include Singleton
|
10
12
|
|
11
13
|
# Initialize Event object. Is used for listen an standard out queue to Janus
|
12
14
|
def initialize
|
13
15
|
@publish = @response = nil
|
14
|
-
|
16
|
+
Tools::Log.instance.info "Create an thread -- #{self.class.name}"
|
17
|
+
@rabbit = Rabbit::Connect.new
|
18
|
+
@lock = Mutex.new
|
19
|
+
@condition = ConditionVariable.new
|
20
|
+
@thread_subscribe = Thread.new { initialize_thread }
|
15
21
|
end
|
16
22
|
|
17
23
|
# Start listen queue and work with each message reading
|
18
24
|
def listen(&block)
|
19
|
-
|
20
|
-
|
25
|
+
@thread_subscribe.join
|
26
|
+
puts 'LISTEN !!'
|
27
|
+
@thread_listen = Thread.new do
|
28
|
+
puts 'LISTEN in thread !!'
|
29
|
+
Thread.pass
|
21
30
|
@publish.event_received(&block)
|
22
31
|
end
|
23
32
|
end
|
24
33
|
|
25
34
|
private
|
26
35
|
|
27
|
-
#
|
28
|
-
def
|
29
|
-
|
30
|
-
@
|
31
|
-
|
36
|
+
# Initialize a thread
|
37
|
+
def initialize_thread
|
38
|
+
Thread.pass
|
39
|
+
@rabbit.transaction_long do
|
40
|
+
@publish = Rabbit::Publisher::Listener.new(@rabbit)
|
41
|
+
@response = @publish.listen_events
|
42
|
+
@thread_listen&.join # Call if not nil
|
43
|
+
end
|
44
|
+
rescue Interrupt
|
45
|
+
Tools::Log.instance.info "Stop transaction #{self.class.name}"
|
46
|
+
@rabbit.close
|
32
47
|
end
|
33
48
|
end
|
34
49
|
end
|
data/listen.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# :reek:NilCheck and :reek:TooManyStatements
|
2
|
+
# frozen_string_literal: true
|
4
3
|
|
5
4
|
require 'ruby_rabbitmq_janus'
|
6
5
|
|
7
6
|
@t = RubyRabbitmqJanus::RRJ.new
|
7
|
+
@events = RubyRabbitmqJanus::Janus::Concurrencies::Event.instance
|
8
8
|
|
9
|
+
# :reek:NilCheck and :reek:TooManyStatements
|
9
10
|
def case_event(data, jsep)
|
10
|
-
puts "Event : #{data.class} -- #{data}"
|
11
|
+
puts "REASON : Event : #{data.class} -- #{data}"
|
11
12
|
case data['videocontrol']
|
12
13
|
when 'joined'
|
13
14
|
puts 'Joined request ...'
|
@@ -24,32 +25,32 @@ def update_jsep(jsep)
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def case_hangup
|
27
|
-
puts 'Hangup'
|
28
|
-
Thread.stop
|
28
|
+
puts 'REASON : Hangup'
|
29
|
+
Thread.current.stop
|
29
30
|
end
|
30
31
|
|
31
32
|
def case_stop
|
32
|
-
puts 'Stop'
|
33
|
-
Thread.stop
|
33
|
+
puts 'REASON : Stop'
|
34
|
+
Thread.current.stop
|
34
35
|
end
|
35
36
|
|
36
37
|
def case_error
|
37
|
-
puts 'Error ...'
|
38
|
+
puts 'REASON : Error ...'
|
38
39
|
end
|
39
40
|
|
40
|
-
puts
|
41
|
-
|
41
|
+
puts '## Start listen Block'
|
42
|
+
@events.listen do |reason, data, jsep|
|
42
43
|
case reason
|
43
44
|
when 'event' then case_event(data, jsep)
|
44
45
|
when 'hangup' then case_hangup
|
45
46
|
when 'stop' then case_stop
|
46
47
|
when 'error' then case_error
|
47
48
|
else
|
48
|
-
puts
|
49
|
+
puts 'REASON default'
|
49
50
|
end
|
50
51
|
end
|
51
|
-
puts
|
52
|
+
puts '## End listen block'
|
52
53
|
|
53
|
-
|
54
|
-
|
55
|
-
|
54
|
+
puts 'apps running'
|
55
|
+
loop do
|
56
|
+
end
|