diff --git a/app/assets/javascripts/JamServer.js b/app/assets/javascripts/JamServer.js index c5f5889a3..939556b7c 100644 --- a/app/assets/javascripts/JamServer.js +++ b/app/assets/javascripts/JamServer.js @@ -10,7 +10,9 @@ var server = {}; server.socket = {}; - server.singedIn = false; + server.signedIn = false; + server.clientID = ""; + server.publicIP = ""; server.dispatchTable = {}; server.registerMessageCallback = function(messageType, callback) { @@ -63,7 +65,7 @@ if (callbacks !== undefined) { var len = callbacks.length; for(var i = 0; i < len; i++) { - callbacks[i](messageType, payload); + callbacks[i](message, payload); } } else { @@ -115,9 +117,10 @@ context.JK.JamServer = server; // Message callbacks - server.registerMessageCallback(context.JK.MessageType.LOGIN_ACK, function(type, payload) { + server.registerMessageCallback(context.JK.MessageType.LOGIN_ACK, function(header, payload) { server.signedIn = true; server.clientID = payload.client_id; + server.publicIP = payload.public_ip; if (context.jamClient !== undefined) { @@ -126,14 +129,14 @@ } }); - server.registerMessageCallback(context.JK.MessageType.PEER_MESSAGE, function(type, payload) { + server.registerMessageCallback(context.JK.MessageType.PEER_MESSAGE, function(header, payload) { if (context.jamClient !== undefined) { - context.jamClient.P2PMessageReceived(payload.sender_id, payload.message); + context.jamClient.P2PMessageReceived(header.from, payload.message); } }); - server.registerMessageCallback(context.JK.MessageType.LOGIN_MUSIC_SESSION_ACK, function(type, payload) { + server.registerMessageCallback(context.JK.MessageType.LOGIN_MUSIC_SESSION_ACK, function(header, payload) { if (context.jamClient !== undefined) { // TODO: modify the LOGIN_MUSIC_SESSION_ACK message to include session_id diff --git a/app/assets/javascripts/createSession.js b/app/assets/javascripts/createSession.js index 175813407..56e6174b3 100644 --- a/app/assets/javascripts/createSession.js +++ b/app/assets/javascripts/createSession.js @@ -18,6 +18,7 @@ function(response) { var newSessionId = response.id; self.location = '#/session/' + newSessionId; + context.JK.joinMusicSession(newSessionId); } ); evt.preventDefault(); diff --git a/app/assets/javascripts/joinSession.js b/app/assets/javascripts/joinSession.js new file mode 100644 index 000000000..ae1e372a4 --- /dev/null +++ b/app/assets/javascripts/joinSession.js @@ -0,0 +1,34 @@ +(function(context,$) { + + context.JK = context.JK || {}; + + context.JK.joinMusicSession = function(session_id) { + var logger = context.JK.logger; + var server = context.JK.JamServer; + var client = context.jamClient; + + if (!server.signedIn) + { + logger.log("Can't join a session because the client is not connected."); + return; + } + + logger.log("Joining session: " + session_id); + + var data = { client_id: server.clientID, ip_address: server.publicIP }; + var url = "/api/sessions/" + session_id + "/participants"; + $.ajax({ + type: "POST", + url: url, + data: data + }).done( + function(response) { + if (client !== undefined) + { + client.JoinSession({ sessionID: session_id }); + } + } + ); + }; + + })(window,jQuery); \ No newline at end of file diff --git a/app/assets/javascripts/messaging.js b/app/assets/javascripts/messaging.js index 3e3a6f220..b540d596d 100644 --- a/app/assets/javascripts/messaging.js +++ b/app/assets/javascripts/messaging.js @@ -22,8 +22,8 @@ var pingCount = 0; var maxPings = 5; - function logMessage(messageType, payload) { - logger.debug(messageType + ": " + JSON.stringify(payload)); + function logMessage(header, payload) { + logger.debug(header.type + ": " + JSON.stringify(payload)); } function pingMyself() { @@ -38,8 +38,8 @@ } } - function loggedIn(messageType, payload) { - logger.debug('Logged In handler: ' + messageType + ':' + JSON.stringify(payload)); + function loggedIn(header, payload) { + logger.debug('Logged In handler: ' + header.type + ':' + JSON.stringify(payload)); myClientId = payload.client_id; myPingTimer = context.setInterval(pingMyself, 1000); } diff --git a/app/views/clients/index.html.erb b/app/views/clients/index.html.erb index 7e9086a9f..9739fd67b 100644 --- a/app/views/clients/index.html.erb +++ b/app/views/clients/index.html.erb @@ -455,15 +455,6 @@ messaging.register(); var jam_server = JK.JamServer; - - if (jamClient !== undefined) { - jam_server.registerMessageCallback(JK.MessageType.LOGIN_ACK, function(type, payload) { - // This is just a test to kick off sending a few messages to self - // TODO: We need a session first to send p2p messages - //jamClient.JoinSession({ sessionID : 'just a test'}); - }); - } - jam_server.connect(); })