keyhole 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/keyhole.rb +7 -5
- data/lib/query_server.rb +2 -1
- data/lib/sat_parser.rb +6 -1
- metadata +3 -3
data/lib/keyhole.rb
CHANGED
@@ -5,6 +5,7 @@ require File.dirname(__FILE__) + '/query_server'
|
|
5
5
|
require 'em-websocket'
|
6
6
|
require 'sinatra/base'
|
7
7
|
require 'thin'
|
8
|
+
require 'em-mysqlplus'
|
8
9
|
|
9
10
|
|
10
11
|
EventMachine.run{
|
@@ -13,13 +14,14 @@ EventMachine.run{
|
|
13
14
|
# of multiple servers. Or, it can just be an http-based reporting tool.
|
14
15
|
class Querier < Sinatra::Base
|
15
16
|
get "/" do
|
16
|
-
return "This is Keyhole, with #{$clients.length}
|
17
|
+
return "This is Keyhole, with #{$clients.length} trackers and #{$webclients.length} webclients connected."
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
21
|
|
21
|
-
$channel
|
22
|
-
$clients
|
22
|
+
$channel = EM::Channel.new
|
23
|
+
$clients = {}
|
24
|
+
$webclients = {}
|
23
25
|
|
24
26
|
EventMachine::start_server "0.0.0.0", 5000, SatParser
|
25
27
|
EventMachine::start_server "0.0.0.0", 5500, QueryServer
|
@@ -28,11 +30,11 @@ EventMachine.run{
|
|
28
30
|
EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080, :debug => true) do |ws|
|
29
31
|
ws.onopen{
|
30
32
|
sid = $channel.subscribe { |msg| ws.send msg }
|
31
|
-
$
|
33
|
+
$webclients[sid] = true
|
32
34
|
ws.onmessage{|msg| $channel.push "Ninja!" }
|
33
35
|
ws.onclose{
|
34
36
|
$channel.unsubscribe(sid)
|
35
|
-
$
|
37
|
+
$webclients.delete(sid)
|
36
38
|
}
|
37
39
|
}
|
38
40
|
end
|
data/lib/query_server.rb
CHANGED
data/lib/sat_parser.rb
CHANGED
@@ -1,12 +1,17 @@
|
|
1
1
|
class SatParser < EventMachine::Connection
|
2
2
|
|
3
|
+
attr_accessor :db
|
4
|
+
|
3
5
|
def post_init
|
4
|
-
|
6
|
+
$clients.push(self)
|
7
|
+
db = EventMachine::MySQL.new(:host => "localhost", :username => "root", :database => "keyhole_development")
|
8
|
+
$channel << "{event:'connect', 'type':'tracker'}"
|
5
9
|
end
|
6
10
|
|
7
11
|
def receive_data(data)
|
8
12
|
puts "Data received..."
|
9
13
|
puts data.inspect
|
14
|
+
db.query("insert into locations(latitude, longitude) value('ninja', 'neger');")
|
10
15
|
$channel << data
|
11
16
|
end
|
12
17
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keyhole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- buffpojken
|