mirror of
https://github.com/wassname/HackFlowy.git
synced 2026-07-16 01:20:31 +08:00
Semi-Naive Real-Time-Editing Works (as far as I can tell). Todos= CursorLogic+AuthorSync
This commit is contained in:
+12
-7
@@ -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
@@ -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);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user