class FnordMetric::WebSocket
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fnordmetric/web/websocket.rb, line 8 def initialize super @reactor = FnordMetric::Reactor.new @uuid = "websocket-#{get_uuid}" end
Public Instance Methods
get_uuid()
click to toggle source
# File lib/fnordmetric/web/websocket.rb, line 37 def get_uuid rand(8**64).to_s(36) end
on_message(env, message)
click to toggle source
# File lib/fnordmetric/web/websocket.rb, line 19 def on_message(env, message) begin message = JSON.parse(message) rescue puts "websocket: invalid json" else message["_eid"] ||= get_uuid message["_sender"] = @uuid @reactor.execute(self, message).each do |m| send_data m.to_json end end rescue Exception => e FnordMetric.error("[WebSocket] #{e.to_s}") puts e.backtrace.join("\n") end
on_open(env)
click to toggle source
# File lib/fnordmetric/web/websocket.rb, line 15 def on_open(env) @reactor.ready! end