master
1require 'rack'
2require 'puma'
3require 'rack/handler/puma'
4require 'redis'
5
6class Application
7 attr_reader :redis
8
9 def initialize
10 @redis = Redis.new
11 end
12
13 def call(env)
14 if env['rack.hijack?']
15 env['rack.hijack'].call
16 io = env['rack.hijack_io']
17 redis.subscribe("ruby") do |on|
18 on.message do |channel, message|
19 puts message.inspect
20 io.write(message)
21 end
22 end
23 #Thread.new do
24 #loop do
25 #sleep 5
26 #io.write("I'm awake...")
27 #end
28 #end
29 else
30 ['200', {'Content-Type' => 'text/html'}, ['A barebones rack app.']]
31 end
32 end
33end
34
35Rack::Handler::Puma.run Application.new