diff --git a/app/realtime.rb b/app/realtime.rb new file mode 100644 index 00000000..40aa74ea --- /dev/null +++ b/app/realtime.rb @@ -0,0 +1,22 @@ +require 'rack/websocket' +class Realtime < Rack::WebSocket::Application + def initialize(options = {}) + super + end + + def on_close(env) + puts "Client disconnected" + end + + def on_message(env, msg) + puts "Received message: " + msg + end + + def on_error(env, error) + puts "Error occured: " + error.message + end + + def on_open(env) + send_data Play::Player.now_playing.to_json + end +end \ No newline at end of file diff --git a/config.ru b/config.ru index bfb2285c..b552cb48 100644 --- a/config.ru +++ b/config.ru @@ -1,5 +1,6 @@ require File.expand_path(File.dirname(__FILE__) + '/app/boot') require 'sprockets' +require 'realtime' stylesheets = Sprockets::Environment.new stylesheets.append_path 'app/frontend/styles' @@ -7,31 +8,9 @@ stylesheets.append_path 'app/frontend/styles' javascripts = Sprockets::Environment.new javascripts.append_path 'app/frontend/scripts' -map("/css") { run stylesheets } -map("/js") { run javascripts } +map('/realtime') { run Realtime.new } -map('/') { run Play::App } +map("/css") { run stylesheets } +map("/js") { run javascripts } -require 'rack/websocket' -class Realtime < Rack::WebSocket::Application - def initialize(options = {}) - super - end - - def on_close(env) - puts "Client disconnected" - end - - def on_message(env, msg) - puts "Received message: " + msg - end - - def on_error(env, error) - puts "Error occured: " + error.message - end - - def on_open(env) - send_data Play::Player.now_playing.to_json - end -end -map('/realtime') { run Realtime.new } \ No newline at end of file +map('/') { run Play::App } \ No newline at end of file