room #5

Merged
clement.freville2 merged 4 commits from room into main 11 months ago

@ -14,18 +14,14 @@ await sender.bind(`tcp://127.0.0.1:5557`);
const receiver = new Pull();
await receiver.bind(`tcp://127.0.0.1:5558`);
const clients: Record<string, FastifyReply> = {};
const generateId = () => nanoid(32);
//let updates: Update[] = [];
//let doc = Text.of(["foo"]);
type Room = {
sockets: WebSocket[];
updates: Update[];
doc: Text;
}
};
const rooms: Record<string, Room> = {};
@ -46,26 +42,25 @@ await fastify.register(cors, {
});
fastify.register(websocket);
fastify.register(async function (fastify: Fastify) {
fastify.register(async function(fastify: Fastify) {
fastify.get(
"/live/:roomId",
{
schema: {
params: Type.Object({
roomId: Type.String(),
})
params: Type.Object({
roomId: Type.String(),
}),
},
websocket: true
websocket: true,
},
(socket, request) => {
const { roomId } = request.params;
let room = rooms[roomId];
if(!room){
if (!room) {
room = {
sockets: [],
updates: [],
doc: Text.of([''])
doc: Text.of([""]),
};
rooms[roomId] = room;
}
@ -102,16 +97,33 @@ fastify.register(async function (fastify: Fastify) {
send(socket, requestId, { version: room.updates.length, doc: room.doc.toString() });
}
});
});
})
},
);
});
/* Route pour créer une room */
fastify.post(
"/live",
async (request, reply) => {
return generateId();
fastify.post("/live", {
schema: {
body: Type.Object({
code: Type.String(),
}),
},
);
}, (request, reply) => {
const { code } = request.body;
let room, roomId;
do {
roomId = generateId();
room = rooms[roomId];
} while (room);
room = {
sockets: [],
updates: [],
doc: Text.of([code]),
};
rooms[roomId] = room;
return roomId;
});
fastify.post("/run", {
schema: {

Loading…
Cancel
Save