Class: PalavaMachine::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/palava_machine/server.rb,
lib/palava_machine/server/core_events.rb,
lib/palava_machine/server/server_info.rb,
lib/palava_machine/server/core_support.rb,
lib/palava_machine/server/verify_handshake.rb

Defined Under Namespace

Modules: CoreEvents, CoreSupport, ServerInfo, VerifyHandshake Classes: HandshakeError

Constant Summary collapse

DEFAULT_FEATURES =
[
  CoreSupport,
  CoreEvents,
#      VerifyHandshake,
  ServerInfo,
]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(given_manager, given_options) ⇒ Server

Returns a new instance of Server.



33
34
35
36
37
# File 'lib/palava_machine/server.rb', line 33

def initialize(given_manager, given_options)
  include_features(given_options.delete(:features))
  @manager = given_manager
  @options = given_options
end

Instance Attribute Details

#featuresObject (readonly)

Returns the value of attribute features.



22
23
24
# File 'lib/palava_machine/server.rb', line 22

def features
  @features
end

#managerObject (readonly)

Returns the value of attribute manager.



22
23
24
# File 'lib/palava_machine/server.rb', line 22

def manager
  @manager
end

#optionsObject (readonly)

Returns the value of attribute options.



22
23
24
# File 'lib/palava_machine/server.rb', line 22

def options
  @options
end

Instance Method Details

#em_error(e) ⇒ Object



29
# File 'lib/palava_machine/server.rb', line 29

def em_error(e)             end

#em_initObject



28
# File 'lib/palava_machine/server.rb', line 28

def em_init()               end

#em_sigintObject



31
# File 'lib/palava_machine/server.rb', line 31

def em_sigint()             end

#em_sigtermObject



30
# File 'lib/palava_machine/server.rb', line 30

def em_sigterm()            end

#runObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/palava_machine/server.rb', line 39

def run
  EM.run{
    em_init
    trap(:TERM){ em_sigterm }
    trap(:INT){ em_sigint }

    EM::WebSocket.run(options){ |ws|
      ws.onopen{ |handshake|  ws_open(ws, handshake) }
      ws.onmessage{ |message| ws_message(ws, message) }
      ws.onclose{ |why|       ws_close(ws, why) }
      ws.onerror{ |error|     ws_error(ws, error) }
      EM.error_handler{ |e|   em_error(e) }
    }
  }
end

#ws_close(ws, close) ⇒ Object



27
# File 'lib/palava_machine/server.rb', line 27

def ws_close(ws, close)     end

#ws_error(ws, error) ⇒ Object



26
# File 'lib/palava_machine/server.rb', line 26

def ws_error(ws, error)     end

#ws_message(ws, message) ⇒ Object



25
# File 'lib/palava_machine/server.rb', line 25

def ws_message(ws, message) end

#ws_open(ws, handshake) ⇒ Object



24
# File 'lib/palava_machine/server.rb', line 24

def ws_open(ws, handshake)  end