Sha256: 75b7d976d993b288f94a8a986fe9ae76d4745c7fd830c495188b1c039e363946
Contents?: true
Size: 763 Bytes
Versions: 5
Compression:
Stored size: 763 Bytes
Contents
require "eventmachine" require 'rack/websocket' require "em-hiredis" require "json" class FnordMetric::WebSocket < Rack::WebSocket::Application def initialize super @reactor = FnordMetric::Reactor.new @uuid = "websocket-#{get_uuid}" end def on_open(env) @reactor.ready! end 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 def get_uuid rand(8**64).to_s(36) end end
Version data entries
5 entries across 5 versions & 3 rubygems