add multiroom
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details

pull/4/head
Bastien OLLIER 11 months ago
parent e8d57a208a
commit ea4160cb6d

@ -75,31 +75,31 @@ fastify.register(async function (fastify: Fastify) {
const requestId = data._request;
if (data.type === "pullUpdates") {
send(socket, requestId, room.updates.slice(data.version));
send(socket, requestId, room.updates.slice(data.version));
} else if (data.type === "pushUpdates") {
let received = data.updates.map((json: any) => ({
clientID: json.clientID,
changes: ChangeSet.fromJSON(json.changes),
}));
if (data.version != room.updates.length) {
received = rebaseUpdates(received, room.updates.slice(data.version));
}
for (let update of received) {
room.updates.push(update);
room.doc = update.changes.apply(room.doc);
}
send(
socket,
requestId,
received.map((update: any) => ({
clientID: update.clientID,
changes: update.changes.toJSON(),
})),
);
} else if (data.type == "getDocument") {
send(socket, requestId, { version: room.updates.length, doc: room.doc.toString() });
let received = data.updates.map((json: any) => ({
clientID: json.clientID,
changes: ChangeSet.fromJSON(json.changes),
}));
if (data.version != room.updates.length) {
received = rebaseUpdates(received, room.updates.slice(data.version));
}
for (let update of received) {
room.updates.push(update);
room.doc = update.changes.apply(room.doc);
}
send(
socket,
requestId,
received.map((update: any) => ({
clientID: update.clientID,
changes: update.changes.toJSON(),
})),
);
} else if (data.type === "getDocument") {
send(socket, requestId, { version: room.updates.length, doc: room.doc.toString() });
}
});
});

Loading…
Cancel
Save