class Vines::Stream::Http::Sessions
Sessions
is a cache of Http::Session
objects for transient HTTP connections. The cache is monitored for expired client connections.
Public Class Methods
[](sid)
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 16 def self.[](sid) instance[sid] end
[]=(sid, session)
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 20 def self.[]=(sid, session) instance[sid] = session end
delete(sid)
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 24 def self.delete(sid) instance.delete(sid) end
instance()
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 12 def self.instance @@instance ||= self.new end
new()
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 28 def initialize @sessions = {} start_timer end
Public Instance Methods
[](sid)
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 37 def [](sid) @sessions[sid] end
[]=(sid, session)
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 33 def []=(sid, session) @sessions[sid] = session end
delete(sid)
click to toggle source
# File lib/vines/stream/http/sessions.rb, line 41 def delete(sid) @sessions.delete(sid) end
Private Instance Methods
cleanup()
click to toggle source
Remove cached information for all expired connections. An expired HTTP client is one that has no queued requests and has had no activity for over 20 seconds.
# File lib/vines/stream/http/sessions.rb, line 55 def cleanup @sessions.each_value do |session| session.close if session.expired? end rescue => e log.error("Expired session cleanup failed: #{e}") end
start_timer()
click to toggle source
Check for expired clients to cleanup every second.
# File lib/vines/stream/http/sessions.rb, line 48 def start_timer @timer ||= EventMachine::PeriodicTimer.new(1) { cleanup } end