Module: Nali::Clients

Included in:
Application
Defined in:
lib/nali/clients.rb,
lib/generator/application/app/server/clients.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.listObject



5
6
7
# File 'lib/nali/clients.rb', line 5

def self.list
  @@list ||= []
end

Instance Method Details

#client_connected(client) ⇒ Object



3
4
5
# File 'lib/generator/application/app/server/clients.rb', line 3

def client_connected( client )

end

#client_disconnected(client) ⇒ Object



11
12
13
# File 'lib/generator/application/app/server/clients.rb', line 11

def client_disconnected( client )

end

#clientsObject



9
10
11
# File 'lib/nali/clients.rb', line 9

def clients
  Nali::Clients.list
end

#on_client_connected(client) ⇒ Object



13
14
15
# File 'lib/nali/clients.rb', line 13

def on_client_connected( client )
  clients << client
end

#on_client_disconnected(client) ⇒ Object



36
37
38
39
# File 'lib/nali/clients.rb', line 36

def on_client_disconnected( client )
  clients.delete client
  client_disconnected( client ) if respond_to?( :client_disconnected )
end

#on_message(client, message) ⇒ Object



7
8
9
# File 'lib/generator/application/app/server/clients.rb', line 7

def on_message( client, message )

end

#on_received_message(client, message) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/nali/clients.rb', line 17

def on_received_message( client, message )
  if message[ :nali_browser_id ]
    client.browser_id = message[ :nali_browser_id ]
    client_connected( client ) if respond_to?( :client_connected )
    client.send_json action: :_onOpen
  elsif message[ :ping ]
    client.send_json action: :_pong
  elsif message[ :controller ]
    name = message[ :controller ].capitalize + 'Controller'
    if Math.const_defined?( name ) and controller = Object.const_get( name )
      controller = controller.new( client, message )
      if controller.respond_to?( action = message[ :action ].to_sym )
        controller.runAction action
      else puts "Action #{ action } not exists in #{ controller }" end
    else puts "Controller #{ name } not exists" end
    on_message( client, message ) if respond_to?( :on_message )
  end
end