Sha256: c718508fec46dc470de32a23264a4e8268b97c2d42eae1e2db45108b459388c5
Contents?: true
Size: 660 Bytes
Versions: 1
Compression:
Stored size: 660 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 end def get_uuid rand(8**64).to_s(36) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fnordmetric-1.2.6 | lib/fnordmetric/web/websocket.rb |