Class: Ws
- Inherits:
-
Object
- Object
- Ws
- Defined in:
- lib/server_skeleton/ws.rb
Class Method Summary collapse
- .onclose(request, ws) ⇒ Object
- .onmessage(request, ws, msg_data) ⇒ Object
- .onopen(request, ws) ⇒ Object
- .run(request) ⇒ Object
Class Method Details
.onclose(request, ws) ⇒ Object
30 31 32 33 |
# File 'lib/server_skeleton/ws.rb', line 30 def self.onclose(request, ws) token = CGI.parse(URI.parse(ws.url).to_s)["token"] Sockets.delete token end |
.onmessage(request, ws, msg_data) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/server_skeleton/ws.rb', line 21 def self.(request, ws, msg_data) data = JSON.parse msg_data token = data["token"] user = find_username(token) case data["action"] when "try_authenticate" then try_authenticate(ws, token) end end |
.onopen(request, ws) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/server_skeleton/ws.rb', line 12 def self.onopen(request, ws) token = request.params["token"] if token Sockets[token] << ws else ws.close end end |
.run(request) ⇒ Object
3 4 5 6 7 8 9 10 |
# File 'lib/server_skeleton/ws.rb', line 3 def self.run(request) return unless Faye::WebSocket.websocket?(request.env) socket = Faye::WebSocket.new(request.env) socket.onopen = Proc.new { |e| onopen(request, socket) } socket. = Proc.new { |e| (request, socket, e.data) } socket.onclose = Proc.new { |e| onclose(request, socket) } socket.rack_response end |