Class: Routes::Ws

Inherits:
Object
  • Object
show all
Defined in:
lib/server_skeleton/lib/routes/ws.rb

Class Method Summary collapse

Class Method Details

.onclose(request, ws) ⇒ Object



27
28
29
# File 'lib/server_skeleton/lib/routes/ws.rb', line 27

def self.onclose(request, ws)
  delete_socket(request, ws)
end

.onmessage(request, ws, msg) ⇒ Object



24
25
# File 'lib/server_skeleton/lib/routes/ws.rb', line 24

def self.onmessage(request, ws, msg)
end

.onopen(request, ws) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/server_skeleton/lib/routes/ws.rb', line 12

def self.onopen(request, ws)
  token = request.params["token"]
  unless token
    ws.send({
      msg: "no valid token was sent with websocket; invalid"
    }.to_json)
    ws.close
    return
  end
  Sockets[token] = ws
end

.run(request) ⇒ Object



3
4
5
6
7
8
9
10
# File 'lib/server_skeleton/lib/routes/ws.rb', line 3

def self.run(request)
  return unless Faye::WebSocket.websocket?(request.env)
  socket = Faye::WebSocket.new(req.env)
  socket.onopen { onopen(request, socket) }
  socket.onmessage { |msg| onmessage(request, ws, msg) }
  socket.onclose { onclose(request, ws) }
  socket.rack_response
end