@@ -0,0 +1,2 @@ |
||
1 |
+source 'http://rubygems.org' |
|
2 |
+gem 'faye' |
@@ -0,0 +1,33 @@ |
||
1 |
+GEM |
|
2 |
+ remote: http://rubygems.org/ |
|
3 |
+ specs: |
|
4 |
+ addressable (2.2.6) |
|
5 |
+ daemons (1.1.4) |
|
6 |
+ em-hiredis (0.1.0) |
|
7 |
+ hiredis (~> 0.3.0) |
|
8 |
+ em-http-request (0.3.0) |
|
9 |
+ addressable (>= 2.0.0) |
|
10 |
+ escape_utils |
|
11 |
+ eventmachine (>= 0.12.9) |
|
12 |
+ escape_utils (0.2.3) |
|
13 |
+ eventmachine (0.12.10) |
|
14 |
+ faye (0.6.2) |
|
15 |
+ em-hiredis (>= 0.0.1) |
|
16 |
+ em-http-request (>= 0.2) |
|
17 |
+ eventmachine (~> 0.12.0) |
|
18 |
+ json (>= 1.0) |
|
19 |
+ rack (>= 1.0) |
|
20 |
+ thin (~> 1.2) |
|
21 |
+ hiredis (0.3.2) |
|
22 |
+ json (1.5.3) |
|
23 |
+ rack (1.3.0) |
|
24 |
+ thin (1.2.11) |
|
25 |
+ daemons (>= 1.0.9) |
|
26 |
+ eventmachine (>= 0.12.6) |
|
27 |
+ rack (>= 1.0.0) |
|
28 |
+ |
|
29 |
+PLATFORMS |
|
30 |
+ ruby |
|
31 |
+ |
|
32 |
+DEPENDENCIES |
|
33 |
+ faye |
@@ -0,0 +1,21 @@ |
||
1 |
+require 'rubygems' |
|
2 |
+require 'bundler' |
|
3 |
+Bundler.require |
|
4 |
+require 'faye' |
|
5 |
+ |
|
6 |
+require File.expand_path('../config/initializers/faye_token.rb', __FILE__) |
|
7 |
+ |
|
8 |
+class ServerAuth |
|
9 |
+ def incoming(message, callback) |
|
10 |
+ if message['channel'] !~ %r{^/meta/} |
|
11 |
+ if message['ext']['auth_token'] != FAYE_TOKEN |
|
12 |
+ message['error'] = 'Invalid authentication token' |
|
13 |
+ end |
|
14 |
+ end |
|
15 |
+ callback.call(message) |
|
16 |
+ end |
|
17 |
+end |
|
18 |
+ |
|
19 |
+faye_server = Faye::RackAdapter.new(:mount => '/faye', :timeout => 45) |
|
20 |
+faye_server.add_extension(ServerAuth.new) |
|
21 |
+run faye_server |
@@ -0,0 +1 @@ |
||
1 |
+FAYE_TOKEN = "anything" |