* VRFS-484 support for increased leave/join messaging and reconnect scenarios

This commit is contained in:
Seth Call 2013-08-07 10:39:34 -05:00
parent 248f9b3048
commit 2e63b897d1
7 changed files with 30 additions and 8 deletions

View File

@ -76,7 +76,9 @@
};
// create a login message using token (a cookie or similiar)
factory.login_with_token = function(token) {
// reconnect_music_session_id is an optional argument that allows the session to be immediately associated
// with a music session.
factory.login_with_token = function(token, reconnect_music_session_id) {
//context.JK.logger.debug("*** login_with_token: client_id = "+$.cookie("client_id"));
var login = { token : token,
client_id : $.cookie("client_id")

View File

@ -55,7 +55,7 @@
server.rememberLogin = function() {
var token, loginMessage;
token = $.cookie("remember_token");
loginMessage = msg_factory.login_with_token(token);
loginMessage = msg_factory.login_with_token(token, null);
server.send(loginMessage);
};

View File

@ -26,7 +26,7 @@ class UsersController < ApplicationController
if !@invited_user.nil? && @invited_user.accepted
# short-circuit out if this invitation is already accepted
render "already_signed_up"
render "already_signed_up", :layout => 'landing'
return
end
@signup_postback = load_postback(@invited_user)

View File

@ -1,4 +1,5 @@
<% provide(:title, "Facebook Invitations") %>
<%= javascript_include_tag "jquery" %>
<%= javascript_include_tag "jqfmfs/jquery.facebook.multifriend.select" %>
<%= stylesheet_link_tag "jqfmfs/jquery.facebook.multifriend.select" %>
<h1>Facebook Invitations</h1>

View File

@ -100,8 +100,8 @@ if defined?(Bundler)
config.websocket_gateway_connect_time_stale = 2
config.websocket_gateway_connect_time_expire = 5
else
config.websocket_gateway_connect_time_stale = 30
config.websocket_gateway_connect_time_expire = 180
config.websocket_gateway_connect_time_stale = 6
config.websocket_gateway_connect_time_expire = 10
end
config.websocket_gateway_internal_debug = false
config.websocket_gateway_port = 6767
@ -121,6 +121,9 @@ if defined?(Bundler)
config.aws_bucket_public = 'jamkazam-dev-public'
config.aws_cache = '315576000'
# facebook keys
config.facebook_key = '468555793186398'
if Rails.env == 'production'
config.desk_url = 'https://jamkazam.desk.com'
config.multipass_callback_url = "http://jamkazam.desk.com/customer/authentication/multipass/callback"

View File

@ -42,6 +42,9 @@ SampleApp::Application.routes.draw do
match '/test_connection', to: 'sessions#connection_state', :as => :connection_state
# spikes
match '/facebook_invite', to: 'spikes#facebook_invite'
# password reset
match '/request_reset_password' => 'users#request_reset_password', :via => :get
match '/reset_password' => 'users#reset_password', :via => :post

View File

@ -43,7 +43,13 @@ class MusicSessionManager < BaseManager
MusicSessionHistory.save(music_session)
# auto-join this user into the newly created session
connection = ConnectionManager.new.join_music_session(user, client_id, music_session, true, tracks)
as_musician = true
connection = ConnectionManager.new.join_music_session(user, client_id, music_session, as_musician, tracks) do |db_conn, connection|
if as_musician && music_session.musician_access
Notification.send_musician_session_join(music_session, connection, user)
Notification.send_friend_session_join(db_conn, connection, user)
end
end
unless connection.errors.any?
return_value = music_session
@ -97,7 +103,12 @@ class MusicSessionManager < BaseManager
music_session = MusicSession.find(music_session_id)
connection = ConnectionManager.new.join_music_session(user, client_id, music_session, as_musician, tracks)
connection = ConnectionManager.new.join_music_session(user, client_id, music_session, as_musician, tracks) do |db_conn, connection|
if as_musician && music_session.musician_access
Notification.send_musician_session_join(music_session, connection, user)
Notification.send_friend_session_join(db_conn, connection, user)
end
end
if connection.errors.any?
# rollback the transaction to make sure nothing is disturbed in the database
@ -117,7 +128,9 @@ class MusicSessionManager < BaseManager
raise PermissionError, "you do not own this connection"
end
ConnectionManager.new.leave_music_session(user, connection, music_session)
ConnectionManager.new.leave_music_session(user, connection, music_session) do
Notification.send_musician_session_depart(music_session, connection.client_id, user)
end
unless music_session.nil?
# send out notification to queue to the rest of the session