diff --git a/Gemfile b/Gemfile index 5ad8116b9..413b8d14c 100644 --- a/Gemfile +++ b/Gemfile @@ -43,6 +43,7 @@ gem 'sendgrid', '1.1.0' gem 'recaptcha', '0.3.4' gem 'filepicker-rails', '0.0.2' gem 'aws-sdk', '1.8.0' +gem 'aasm', '3.0.16' #group :libv8 do # gem 'libv8', "~> 3.11.8" diff --git a/app/views/api_music_sessions/participant_show.rabl b/app/views/api_music_sessions/participant_show.rabl index 307a3021d..cbbf29c87 100644 --- a/app/views/api_music_sessions/participant_show.rabl +++ b/app/views/api_music_sessions/participant_show.rabl @@ -1,6 +1,8 @@ object @connection attributes :ip_address, :client_id +attribute :aasm_state => :connection_state + node(:user_id, :if => lambda { |connection| connection.user.friends?(current_user) }) do |connection| connection.user_id end diff --git a/app/views/api_music_sessions/show.rabl b/app/views/api_music_sessions/show.rabl index 9a2efe33c..0f6ce7b57 100644 --- a/app/views/api_music_sessions/show.rabl +++ b/app/views/api_music_sessions/show.rabl @@ -11,7 +11,7 @@ child(:connections => :participants) { attributes :ip_address, :client_id node :user do |connection| - { :id => connection.user.id, :photo_url => connection.user.photo_url, :name => connection.user.name, :is_friend => connection.user.friends?(current_user) } + { :id => connection.user.id, :photo_url => connection.user.photo_url, :name => connection.user.name, :is_friend => connection.user.friends?(current_user), :connection_state => connection.aasm_state } end child(:tracks => :tracks) { diff --git a/config/application.rb b/config/application.rb index 8c8e8c439..87d524939 100644 --- a/config/application.rb +++ b/config/application.rb @@ -88,7 +88,8 @@ module SampleApp # Websocket-gateway embedded configs config.websocket_gateway_enable = false - config.websocket_gateway_max_stale_connection_time = 1800 + config.websocket_gateway_connect_time_stale = 30 + config.websocket_gateway_connect_time_expire = 180 config.websocket_gateway_internal_debug = false config.websocket_gateway_port = 6767 diff --git a/config/environments/cucumber.rb b/config/environments/cucumber.rb index dd44e7246..99814be3a 100644 --- a/config/environments/cucumber.rb +++ b/config/environments/cucumber.rb @@ -50,7 +50,8 @@ SampleApp::Application.configure do # Websocket-gateway embedded configs config.websocket_gateway_enable = true - config.websocket_gateway_max_stale_connection_time = 30 + config.websocket_gateway_connect_time_stale = 30 + config.websocket_gateway_connect_time_expire = 180 config.websocket_gateway_internal_debug = false config.websocket_gateway_port = 6777 diff --git a/config/initializers/eventmachine.rb b/config/initializers/eventmachine.rb index e69884b6f..d1b84223b 100644 --- a/config/initializers/eventmachine.rb +++ b/config/initializers/eventmachine.rb @@ -31,6 +31,7 @@ module JamWebEventMachine end def self.die_gracefully_on_signal + Rails.logger.debug("*** die_gracefully_on_signal") Signal.trap("INT") { EM.stop } Signal.trap("TERM") { EM.stop } end diff --git a/config/initializers/websocket_gateway.rb b/config/initializers/websocket_gateway.rb index 1a2745f29..ae8dabf47 100644 --- a/config/initializers/websocket_gateway.rb +++ b/config/initializers/websocket_gateway.rb @@ -2,5 +2,6 @@ if Rails.application.config.websocket_gateway_enable JamWebsockets::Server.new.run :port => Rails.application.config.websocket_gateway_port, :emwebsocket_debug => Rails.application.config.websocket_gateway_internal_debug, - :max_stale_connection_time => Rails.application.config.websocket_gateway_max_stale_connection_time -end \ No newline at end of file + :connect_time_stale => Rails.application.config.websocket_gateway_connect_time_stale, + :connect_time_expire => Rails.application.config.websocket_gateway_connect_time_expire +end