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