Skip to content

Commit

Permalink
chore: debug broadcastMessage on prod
Browse files Browse the repository at this point in the history
  • Loading branch information
ynwd committed Dec 6, 2024
1 parent c8ce7ea commit 0ba5e03
Showing 1 changed file with 20 additions and 34 deletions.
54 changes: 20 additions & 34 deletions modules/socket/mod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,48 +18,37 @@ interface Data {
}

export default function socketModule(s: Fastro) {
const connected = new Map<string, any>();
console.log("s.getNonce:", s.getNonce());

function broadcastMessage(ctx: Context, room: string, message: string) {
const c = ctx.stores.get("connected");
if (!c) return;
const entries = c.entries().toArray();
// console.log("broadcastMessage:", entries);
const entries = connected.entries().toArray();
if (entries) {
for (const key in entries) {
const [, { value: { socket } }] = entries[key];
const [, { socket }] = entries[key];
if (socket.readyState === WebSocket.OPEN) {
socket.send(message);
}
}
}
}

async function broadcastConnection(ctx: Context, data: Data) {
const c = ctx.stores.get("connected");
if (!c) return;
const entries = c.entries().toArray();
// console.log("broadcastConnection", entries);
const connected = Array.from(entries).map(([, { value }]) => ({
username: value.data.username,
room: value.data.room,
avatar_url: value.data.avatar_url,
}));

for (const key in entries) {
const [, { value: { socket } }] = entries[key];
socket.send(JSON.stringify(connected));
}
}

async function joinRoom(
async function broadcastConnection(
ctx: Context,
socket: WebSocket,
data: Data,
socket: WebSocket,
) {
const connected = ctx.stores.get("connected");
// console.log("joinRoom-connected", connected);
// console.log("joinRoom-data", data);
if (data.user) {
connected?.set(data.user, { data, socket });
connected.set(data.user, { data, socket });
const entries = connected.entries().toArray();
const cc = Array.from(entries).map(([, { data }]) => ({
username: data.username,
room: data.room,
avatar_url: data.avatar_url,
}));

for (const key in entries) {
const [, { socket }] = entries[key];
socket.send(JSON.stringify(cc));
}
}

Expand Down Expand Up @@ -93,8 +82,7 @@ export default function socketModule(s: Fastro) {
}
const data: Data = JSON.parse(event.data);
if (data.type === "ping") {
await joinRoom(ctx, socket, data);
return await broadcastConnection(ctx, data);
return await broadcastConnection(ctx, data, socket);
}
if (data.type === "message" && data.message?.msg !== "") {
broadcastMessage(
Expand All @@ -104,8 +92,6 @@ export default function socketModule(s: Fastro) {
);
return await injectData(ctx, data);
}

// console.log("socket.onmessage-fail to connect", data);
};
socket.onclose = async () => {
const c = ctx.stores.get("connected");
Expand All @@ -119,7 +105,7 @@ export default function socketModule(s: Fastro) {
type: "ping",
room: data.room,
user: data.user,
});
}, socket);
}
}
console.log("DISCONNECTED");
Expand Down

0 comments on commit 0ba5e03

Please sign in to comment.