mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-25 11:16:31 -05:00
Fixed user might not disconnect from server properly, handle more uncaught exceptions
This commit is contained in:
parent
43a175e710
commit
f1a0dff9e6
2 changed files with 16 additions and 6 deletions
|
@ -51,7 +51,7 @@ EditorSocketIOServer.prototype.addClient = function (socket) {
|
|||
try {
|
||||
self.onOperation(socket, revision, operation, selection);
|
||||
} catch (err) {
|
||||
socket.disconnect();
|
||||
socket.disconnect(true);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -171,9 +171,12 @@ function getStatus(callback) {
|
|||
}
|
||||
|
||||
function getNotenameFromSocket(socket) {
|
||||
if (!socket || !socket.handshake || !socket.handshake.headers) {
|
||||
return;
|
||||
}
|
||||
var referer = socket.handshake.headers.referer;
|
||||
if (!referer) {
|
||||
return socket.disconnect();
|
||||
return socket.disconnect(true);
|
||||
}
|
||||
var hostUrl = url.parse(referer);
|
||||
var notename = hostUrl.pathname.split('/')[1];
|
||||
|
@ -184,7 +187,7 @@ function getNotenameFromSocket(socket) {
|
|||
socket.emit('info', {
|
||||
code: 404
|
||||
});
|
||||
return socket.disconnect();
|
||||
return socket.disconnect(true);
|
||||
}
|
||||
notename = LZString.decompressFromBase64(notename);
|
||||
return notename;
|
||||
|
@ -281,7 +284,10 @@ function startConnection(socket) {
|
|||
isConnectionBusy = true;
|
||||
|
||||
var notename = getNotenameFromSocket(socket);
|
||||
if (!notename) return;
|
||||
if (!notename) {
|
||||
isConnectionBusy = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!notes[notename]) {
|
||||
db.readFromDB(notename, function (err, data) {
|
||||
|
@ -289,7 +295,7 @@ function startConnection(socket) {
|
|||
socket.emit('info', {
|
||||
code: 404
|
||||
});
|
||||
socket.disconnect();
|
||||
socket.disconnect(true);
|
||||
//clear err socket in queue
|
||||
for (var i = 0; i < connectionSocketQueue.length; i++) {
|
||||
if (connectionSocketQueue[i].id == socket.id)
|
||||
|
@ -306,6 +312,7 @@ function startConnection(socket) {
|
|||
Note.findOrNewNote(notename, permission, function (err, note) {
|
||||
if (err) {
|
||||
responseError(res, "404", "Not Found", "oops.");
|
||||
isConnectionBusy = false;
|
||||
return;
|
||||
}
|
||||
var body = LZString.decompressFromBase64(data.rows[0].content);
|
||||
|
@ -338,7 +345,10 @@ function disconnect(socket) {
|
|||
logger.info(JSON.stringify(users[socket.id]));
|
||||
}
|
||||
var notename = getNotenameFromSocket(socket);
|
||||
if (!notename) return;
|
||||
if (!notename) {
|
||||
isDisconnectBusy = false;
|
||||
return;
|
||||
}
|
||||
if (users[socket.id]) {
|
||||
delete users[socket.id];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue