lib/keyhole.rb in keyhole-0.1.0 vs lib/keyhole.rb in keyhole-0.1.1

- old
+ new

@@ -3,37 +3,39 @@ require File.dirname(__FILE__) + '/sat_parser' require File.dirname(__FILE__) + '/query_server' require 'em-websocket' require 'sinatra/base' require 'thin' +require 'em-mysqlplus' EventMachine.run{ # This can implement the AJAX-based query-server, without any need # of multiple servers. Or, it can just be an http-based reporting tool. class Querier < Sinatra::Base get "/" do - return "This is Keyhole, with #{$clients.length} clients connected" + return "This is Keyhole, with #{$clients.length} trackers and #{$webclients.length} webclients connected." end end - $channel = EM::Channel.new - $clients = {} + $channel = EM::Channel.new + $clients = {} + $webclients = {} EventMachine::start_server "0.0.0.0", 5000, SatParser EventMachine::start_server "0.0.0.0", 5500, QueryServer # TODO - Make sure this reads config from a config-file instead of this weird thing! EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080, :debug => true) do |ws| ws.onopen{ sid = $channel.subscribe { |msg| ws.send msg } - $clients[sid] = true + $webclients[sid] = true ws.onmessage{|msg| $channel.push "Ninja!" } ws.onclose{ $channel.unsubscribe(sid) - $clients.delete(sid) + $webclients.delete(sid) } } end Querier.run!({:port => 3000})