Semi-Naive Real-Time-Editing Works (as far as I can tell). Todos= CursorLogic+AuthorSync

This commit is contained in:
Curtis SerVaas
2014-10-10 07:52:04 -04:00
parent b9f0448db7
commit 6c2fefb1ad
5 changed files with 53 additions and 24 deletions
+12 -7
View File
@@ -76,15 +76,20 @@ function addNode(data, socket){
var now = Date.now();
var callback = function(err, instance, now){
socket.emit("updateReceived", [modelJson._id ,instance, data[0]]); //(update the ID)
socket.broadcast.emit("newNode", [ [parId,newIndex] , instance ]);
var callback = function(err, instance, now){ Node.updateParent(parId, instance._id ,newIndex, now ); }
Node.addNode(modelJson.text, modelJson.children, modelJson.parents, modelJson.author._id, modelJson._id ,callback);
// var callback = function(err, instance, now){
// socket.emit("updateReceived", [modelJson._id ,instance, data[0]]); //(update the ID)
// socket.broadcast.emit("newNode", [ [parId,newIndex] , instance ]);
Node.updateParent(parId, instance._id ,newIndex, now );
}
// Node.updateParent(parId, instance._id ,newIndex, now );
// }
// console.log("newNode");
Node.addNode(modelJson.text, modelJson.children, modelJson.parents, modelJson.author._id ,callback);
// // console.log("newNode");
// Node.addNode(modelJson.text, modelJson.children, modelJson.parents, modelJson.author._id ,callback);
}
+13 -6
View File
@@ -46,7 +46,8 @@ module.exports = {
});
socket.on('nodeRequest', function(data){
var nodes = Node.findAndSocketSend(socket); //finds, then sends through socket.
console.log("NodeRequst, CURRENT_TIMESTAMP", CURRENT_TIMESTAMP);
var nodes = Node.findAndSocketSend(socket, CURRENT_TIMESTAMP); //finds, then sends through socket.
});
socket.on("revHistoryRequest", function(subRootId){
@@ -129,25 +130,31 @@ function attachLogInListeners(socket){
}
else{
CURRENT_TIMESTAMP = timestampData[0];
socket.broadcast.emit(emitData[0], emitData[1]);
MessageQueue.queueOrDo(action);
socket.broadcast.emit(emitData[0], emitData[1], CURRENT_TIMESTAMP);
MessageQueue.queueOrDo(queueData);
}
}
//maybe emit sooner...
//need to broadcast parentArray.
//timestampData=[CURRENT_TIMESTAMP, oldTime]
socket.on("newNode", function(data, timestampData){
syncValidation(data, timestampData, ['newNode', data, socket], ["dummy", 1234]);
var queueData = ['newNode', data, socket];
var emitData = ['newNode', data];
syncValidation(data, timestampData, queueData, emitData);
//(todo = set IDs on client (instead of negative Ids));
});
socket.on("removeNode", function(data, timestampData){
syncValidation(data, timestampData, ['removeNode', data, socket], ["removeNode", data]);
var queueData = ['removeNode', data, socket];
var emitData = ["removeNode", data];
syncValidation(data, timestampData, queueData, emitData);
});
socket.on("movedNode", function(data, timestampData){
syncValidation(data, timestampData, ['movedNode', data, socket],[ "movedNode", [data[0],data[2]] ]);
var queueData = ['movedNode', data, socket];
var emitData = [ "movedNode", [data[0],data[2]] ];
syncValidation(data, timestampData, queueData, emitData);
});
}