* VRFS-594 - heartbeat checking plus hopefully more sophisticated reconnect logi
This commit is contained in:
parent
a20f29bd1f
commit
a251541a53
|
|
@ -17,7 +17,18 @@
|
|||
server.clientID = "";
|
||||
server.publicIP = "";
|
||||
server.dispatchTable = {};
|
||||
server.connected = false;
|
||||
|
||||
|
||||
// handles logic if the websocket connection closes, and if it was in error then also prompt for reconnect
|
||||
function closedCleanup(in_error) {
|
||||
if(server.connected) {
|
||||
server.connected = false;
|
||||
if(in_error) {
|
||||
context.JK.CurrentSessionModel.onWebsocketDisconnected();
|
||||
}
|
||||
}
|
||||
}
|
||||
server.registerMessageCallback = function(messageType, callback) {
|
||||
if (server.dispatchTable[messageType] === undefined) {
|
||||
server.dispatchTable[messageType] = [];
|
||||
|
|
@ -57,10 +68,9 @@
|
|||
|
||||
server.socket.close();
|
||||
|
||||
if(in_error) {
|
||||
context.JK.CurrentSessionModel.onWebsocketDisconnected();
|
||||
}
|
||||
closedCleanup(in_error);
|
||||
}
|
||||
|
||||
server.rememberLogin = function() {
|
||||
var token, loginMessage;
|
||||
token = $.cookie("remember_token");
|
||||
|
|
@ -99,13 +109,7 @@
|
|||
server.onClose = function() {
|
||||
logger.log("Socket to server closed.");
|
||||
|
||||
if (context.jamClient !== undefined)
|
||||
{
|
||||
context.jamClient.connected = false;
|
||||
}
|
||||
|
||||
context.JK.CurrentSessionModel.onWebsocketDisconnected();
|
||||
|
||||
closedCleanup(true);
|
||||
};
|
||||
|
||||
server.send = function(message) {
|
||||
|
|
@ -147,6 +151,7 @@
|
|||
logger.debug("Handling LOGIN_ACK. Updating client id to " + payload.client_id);
|
||||
server.clientID = payload.client_id;
|
||||
server.publicIP = payload.public_ip;
|
||||
server.connected = true;
|
||||
|
||||
if (context.jamClient !== undefined)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -146,10 +146,10 @@
|
|||
|
||||
/** check if the server is alive */
|
||||
function serverHealthCheck(options) {
|
||||
console.log("serverHealthCheck")
|
||||
return $.ajax({
|
||||
url: window.host,
|
||||
cache: false,
|
||||
dataType: "html"
|
||||
type: "GET",
|
||||
url: "/api/versioncheck"
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@
|
|||
refreshCurrentSession();
|
||||
server.registerMessageCallback(context.JK.MessageType.MUSICIAN_SESSION_JOIN, refreshCurrentSession);
|
||||
server.registerMessageCallback(context.JK.MessageType.MUSICIAN_SESSION_DEPART, refreshCurrentSession);
|
||||
})
|
||||
.fail(function() {
|
||||
currentSessionId = null;
|
||||
});
|
||||
|
||||
return deferred;
|
||||
|
|
@ -77,7 +80,8 @@
|
|||
currentSessionId = null;
|
||||
}
|
||||
else {
|
||||
deferred = rest.serverHealthCheck();
|
||||
deferred = new $.Deferred();
|
||||
deferred.resolve();
|
||||
}
|
||||
|
||||
return deferred;
|
||||
|
|
@ -313,7 +317,7 @@
|
|||
dataType: "json",
|
||||
contentType: 'application/json',
|
||||
url: url,
|
||||
async: false,
|
||||
async: true,
|
||||
data: JSON.stringify(data),
|
||||
processData:false
|
||||
});
|
||||
|
|
@ -324,13 +328,17 @@
|
|||
return $.ajax({
|
||||
type: "DELETE",
|
||||
url: url,
|
||||
async: false
|
||||
async: true
|
||||
});
|
||||
}
|
||||
|
||||
function reconnect() {
|
||||
window.location.reload();
|
||||
context.JK.CurrentSessionModel.leaveCurrentSession()
|
||||
.always(function() {
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
function registerReconnect(content) {
|
||||
$('a.disconnected-reconnect', content).click(function() {
|
||||
|
||||
|
|
@ -340,12 +348,11 @@
|
|||
html : template
|
||||
});
|
||||
|
||||
context.JK.CurrentSessionModel.leaveCurrentSession()
|
||||
rest.serverHealthCheck()
|
||||
.done(function() {
|
||||
reconnect();
|
||||
})
|
||||
.fail(function(xhr, textStatus, errorThrown) {
|
||||
console.log("leaveCurrentSession failed: ", arguments);
|
||||
|
||||
if(xhr && xhr.status >= 100) {
|
||||
// we could connect to the server, and it's alive
|
||||
|
|
@ -362,6 +369,7 @@
|
|||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue