Class: Grenache::WebsocketServer
- Inherits:
-
Object
- Object
- Grenache::WebsocketServer
- Defined in:
- lib/grenache/websocket.rb
Instance Method Summary collapse
- #app(env) ⇒ Object
-
#initialize(port, &block) ⇒ WebsocketServer
constructor
A new instance of WebsocketServer.
- #send(payload) ⇒ Object
- #start_server ⇒ Object
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 20 21 22 |
# File 'lib/grenache/websocket.rb', line 14 def app(env) ws = Faye::WebSocket.new(env) ws.on :message, -> (ev) do req = Message.parse(ev.data) res = @callback.call(req) ws.send(Message.response_to(req, res).to_json) end ws.rack_response end |
#send(payload) ⇒ Object
24 25 26 |
# File 'lib/grenache/websocket.rb', line 24 def send(payload) @server.send(payload) end |
#start_server ⇒ Object
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 |