Skip to content

Commit

Permalink
for bug 32413
Browse files Browse the repository at this point in the history
  • Loading branch information
konovalovsergey authored and trofim24 committed May 18, 2016
1 parent dcd7ea2 commit e55d18a
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions DocService/sources/DocsCoServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -887,14 +887,19 @@ exports.install = function(server, callbackFunction) {
} else {
conn.isCloseCoAuthoring = true;
}

var tmpUser = conn.user;
var commands = [
['hdel', redisKeyPresenceHash + docId, tmpUser.id],
['zrem', redisKeyPresenceSet + docId, tmpUser.id]
];
if (isCloseCoAuthoringTmp) {
var multi = redisClient.multi(commands);
yield utils.promiseRedis(multi, multi.exec);
// Мы уже закрывали совместное редактирование
return;
}

var state = (false == reconnected) ? false : undefined;
var tmpUser = conn.user;
yield* publish({type: commonDefines.c_oPublishType.participantsState, docId: docId, user: tmpUser, state: state}, docId, tmpUser.id);

if (!reconnected) {
Expand All @@ -903,10 +908,6 @@ exports.install = function(server, callbackFunction) {
if (conn.user.id == saveLock) {
yield utils.promiseRedis(redisClient, redisClient.del, redisKeySaveLock + docId);
}
var commands = [
['hdel', redisKeyPresenceHash + docId, tmpUser.id],
['zrem', redisKeyPresenceSet + docId, tmpUser.id]
];
// Только если редактируем
if (false === tmpUser.view) {
commands.push(['zrangebyscore', redisKeyPresenceSet + docId, 0, (new Date()).getTime()],
Expand Down Expand Up @@ -1215,7 +1216,8 @@ exports.install = function(server, callbackFunction) {
//Parse docId
var parsed = urlParse.exec(conn.url);
if (parsed.length > 1) {
docId = conn.docId = parsed[1];
//в version history может приходить разные id в url и data
docId = conn.docId = data.docid;
} else {
//TODO: Send some shit back
}
Expand Down Expand Up @@ -1257,6 +1259,7 @@ exports.install = function(server, callbackFunction) {
});
// Кладем в массив, т.к. нам нужно отправлять данные для открытия/сохранения документа
connections.push(conn);
yield* updatePresence(docId, conn.user.id, JSON.stringify(conn.user));
// Посылаем формальную авторизацию, чтобы подтвердить соединение
yield* sendAuthInfo(undefined, undefined, conn, undefined);
if (cmd) {
Expand Down Expand Up @@ -1967,10 +1970,8 @@ exports.install = function(server, callbackFunction) {
var idSet = new Set();
for (var i = 0; i < connections.length; ++i) {
var conn = connections[i];
if (!conn.user.view && !conn.isCloseCoAuthoring) {
idSet.add(conn.docId);
updatePresenceCommandsToArray(commands, conn.docId, conn.user.id, JSON.stringify(conn.user));
}
idSet.add(conn.docId);
updatePresenceCommandsToArray(commands, conn.docId, conn.user.id, JSON.stringify(conn.user));
}
var expireAt = new Date().getTime() + cfgExpPresence * 1000;
idSet.forEach(function(value1, value2, set) {
Expand Down

0 comments on commit e55d18a

Please sign in to comment.