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

pull/4/head
Bastien OLLIER 1 year ago
parent e8d57a208a
commit ea4160cb6d

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

Loading…
Cancel
Save