Class: SessionRouter

Inherits:
Router
  • Object
show all
Defined in:
lib/shot_mvc/session_router.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ SessionRouter



30
31
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
# File 'lib/shot_mvc/session_router.rb', line 30

def initialize(client)
  super(client)

  client.on 'session_key' do |key|
    create_session_folder unless Dir.exists? 'application/sessions'
    create_session_file key unless File.exists? "application/sessions/#{key}.json"

    client.config[:session_key] = key
    client.config[:session] = JSON.parse File.read "application/sessions/#{key}.json"

    client.emit 'session_ready'
  end

  client.on 'request_session_key' do
    session_key = SecureRandom.uuid
    client.emit 'assign_session_key', :key => session_key, :session_hash => client.config['server']['Security']['SessionHash']

    create_session_folder unless Dir.exists? 'application/sessions'
    create_session_file session_key unless File.exists? "application/sessions/#{session_key}.json"

    client.config[:session_key] = session_key
    client.config[:session] = JSON.parse File.read "application/sessions/#{session_key}.json"

    client.emit 'session_ready'
  end

  client.emit 'provide_session_key', client.config['server']['Security']['SessionHash']
end