Don't send COMMIT-MESSAGE when socketio connection is not active

This commit is contained in:
anugu-chegg 2018-02-03 13:29:52 +05:30 committed by muxator
parent d26df86490
commit fb20c26c5f
2 changed files with 24 additions and 14 deletions

View File

@ -181,20 +181,26 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
} }
var sentMessage = false; var sentMessage = false;
var userChangesData = editor.prepareUserChangeset(); if (getSocket().realConnected) {
if (userChangesData.changeset) var userChangesData = editor.prepareUserChangeset();
{ if (userChangesData.changeset)
lastCommitTime = t; {
state = "COMMITTING"; lastCommitTime = t;
stateMessage = { state = "COMMITTING";
type: "USER_CHANGES", stateMessage = {
baseRev: rev, type: "USER_CHANGES",
changeset: userChangesData.changeset, baseRev: rev,
apool: userChangesData.apool changeset: userChangesData.changeset,
}; apool: userChangesData.apool
sendMessage(stateMessage); };
sentMessage = true; sendMessage(stateMessage);
callbacks.onInternalAction("commitPerformed"); sentMessage = true;
callbacks.onInternalAction("commitPerformed");
}
}
else {
// run again in a few seconds, to check if there was a reconnection attempt
setTimeout(wrapRecordingErrors("setTimeout(handleUserChanges)", handleUserChanges), 1000);
} }
if (sentMessage) if (sentMessage)

View File

@ -201,15 +201,19 @@ function handshake()
}); });
socket.once('connect', function () { socket.once('connect', function () {
// Setup our own connected flag since socketio one doesn't work accurately
socket.realConnected = true;
sendClientReady(false); sendClientReady(false);
}); });
socket.on('reconnect', function () { socket.on('reconnect', function () {
socket.realConnected = true;
pad.collabClient.setChannelState("CONNECTED"); pad.collabClient.setChannelState("CONNECTED");
pad.sendClientReady(true); pad.sendClientReady(true);
}); });
socket.on('reconnecting', function() { socket.on('reconnecting', function() {
socket.realConnected = false;
pad.collabClient.setChannelState("RECONNECTING"); pad.collabClient.setChannelState("RECONNECTING");
}); });