Class: RubyRabbitmqJanus::Janus::Keepalive
- Includes:
- Singleton
- Defined in:
- lib/rrj/janus/threads/keepalive.rb
Overview
Manage sending keepalive message
Instance Attribute Summary
Attributes inherited from OneThread
Instance Method Summary collapse
-
#initialize ⇒ Keepalive
constructor
Initalize a keepalive message.
-
#initialize_thread ⇒ Object
private
Initialize an session with janus and start a keepalive transaction.
-
#session ⇒ Object
Return an number session created.
-
#session_keepalive(time_to_live) ⇒ Object
private
Create an loop for sending a keepalive message.
-
#session_live ⇒ Object
private
Send to regular interval a message keepalive.
-
#session_start ⇒ Object
private
Star an session janus.
-
#ttl ⇒ Object
private
Define a Time To Live between each request sending to janus.
Methods inherited from OneThread
Constructor Details
Instance Method Details
#initialize_thread ⇒ Object (private)
Initialize an session with janus and start a keepalive transaction
32 33 34 35 36 37 38 |
# File 'lib/rrj/janus/threads/keepalive.rb', line 32 def initialize_thread rabbit.start @response = session_start lock.synchronize { condition.signal } session_keepalive(ttl) rabbit.close end |
#session ⇒ Object
Return an number session created
19 20 21 22 |
# File 'lib/rrj/janus/threads/keepalive.rb', line 19 def session lock.synchronize { condition.wait(lock) } @response.session end |
#session_keepalive(time_to_live) ⇒ Object (private)
Create an loop for sending a keepalive message
48 49 50 51 52 53 54 55 56 |
# File 'lib/rrj/janus/threads/keepalive.rb', line 48 def session_keepalive(time_to_live) loop do sleep time_to_live @publish.(Janus::Message.new('base::keepalive', 'session_id' => @response.session)) end rescue => Tools::Log.instance.debug "Error keepalive : #{}" end |
#session_live ⇒ Object (private)
Send to regular interval a message keepalive
27 28 29 |
# File 'lib/rrj/janus/threads/keepalive.rb', line 27 def session_live start_thread end |
#session_start ⇒ Object (private)
Star an session janus
41 42 43 44 45 |
# File 'lib/rrj/janus/threads/keepalive.rb', line 41 def session_start msg_create = Janus::Message.new 'base::create' @publish = Rabbit::Publisher::PublishExclusive.new(rabbit.channel, '') @response = Janus::Response.new(@publish.(msg_create)) end |