working server

Georgios Larkou 14 years ago
commit
02d6128462
4 changed files with 57 additions and 0 deletions
  1. 2 0
      Gemfile
  2. 33 0
      Gemfile.lock
  3. 21 0
      config.ru
  4. 1 0
      config/initializers/faye_token.rb

+ 2 - 0
Gemfile

@@ -0,0 +1,2 @@
1
+source 'http://rubygems.org'
2
+gem 'faye'

+ 33 - 0
Gemfile.lock

@@ -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

+ 21 - 0
config.ru

@@ -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

+ 1 - 0
config/initializers/faye_token.rb

@@ -0,0 +1 @@
1
+FAYE_TOKEN = "anything"