class Grenache::WebsocketServer
Public Class Methods
new(port, &block)
click to toggle source
# File lib/grenache/websocket.rb, line 5 def initialize(port, &block) @port = port @callback = block end
Public Instance Methods
app(env)
click to toggle source
# File lib/grenache/websocket.rb, line 14 def app(env) ws = Faye::WebSocket.new(env) ws.on :message, -> (ev) do req = ServiceMessage.parse(ev.data) err, payload = @callback.call(req) ws.send(ServiceMessage.new(payload, err, req.rid).to_json) end ws.rack_response end
connected?()
click to toggle source
# File lib/grenache/websocket.rb, line 28 def connected? !! @ws end
send(payload)
click to toggle source
# File lib/grenache/websocket.rb, line 24 def send(payload) @server.send(payload) end
start_server()
click to toggle source
# File lib/grenache/websocket.rb, line 10 def start_server @server = Thin::Server.start('0.0.0.0', @port, method(:app), {signals: false}) end