Class: Grenache::WebsocketServer

Inherits:
Object
  • Object
show all
Defined in:
lib/grenache/websocket.rb

Instance Method Summary collapse

Constructor Details

#initialize(port, &block) ⇒ WebsocketServer

Returns a new instance of WebsocketServer.



5
6
7
8
# File 'lib/grenache/websocket.rb', line 5

def initialize(port, &block)
  @port = port
  @callback = block
end

Instance Method Details

#app(env) ⇒ Object



14
15
16
17
18
19
# File 'lib/grenache/websocket.rb', line 14

def app(env)
  ws = Faye::WebSocket.new(env)
  on_message = -> (ev) { @callback.call(ws, ev) }
  ws.on :message, on_message
  ws.rack_response
end

#on_close(ev) ⇒ Object



29
30
31
# File 'lib/grenache/websocket.rb', line 29

def on_close(ev)
  puts "ws closed"
end

#on_message(ev) ⇒ Object



21
22
23
# File 'lib/grenache/websocket.rb', line 21

def on_message(ev)
  @callback.call(@ws,ev)
end

#send(payload) ⇒ Object



25
26
27
# File 'lib/grenache/websocket.rb', line 25

def send(payload)
  @server.send(payload)
end

#start_serverObject



10
11
12
# File 'lib/grenache/websocket.rb', line 10

def start_server
  @server = Thin::Server.start('0.0.0.0', @port, method(:app), {signals: false})
end