broadcast generally working
This commit is contained in:
parent
98631be918
commit
486f0ff425
2 changed files with 79 additions and 62 deletions
|
|
@ -26,16 +26,28 @@ socket.on("connect", async () => {
|
|||
});
|
||||
|
||||
|
||||
// Listen for messages from the server
|
||||
// Listen for messages from the server "MsgObjectServer"
|
||||
socket.on("MsgObjectServer", (data) => {
|
||||
console.log("Message from server:", data);
|
||||
console.log("Message Obj Recieved:", data.message);
|
||||
console.log("Recieved data.message.text: ", data.message.text);
|
||||
console.log("Recieved data.message.user: ", data.message.user);
|
||||
console.log("Recieved data.message.type: ", data.message.type);
|
||||
console.log("Recieved data.message.token: ", data.message.token);
|
||||
console.log("Recieved data.message.timestamp: ", data.message.timestamp);
|
||||
|
||||
// Display the message in the chat window
|
||||
const chatWindow = document.getElementById("t-chatbox") as HTMLDivElement;
|
||||
if (chatWindow) {
|
||||
const messageElement = document.createElement("div");
|
||||
messageElement.textContent = `${data.message.user}: ${data.message.text}`;
|
||||
chatWindow.appendChild(messageElement);
|
||||
chatWindow.scrollTop = chatWindow.scrollHeight;
|
||||
}
|
||||
console.log("Getuser():", getUser());
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
type Providers = {
|
||||
name: string,
|
||||
display_name: string,
|
||||
|
|
@ -59,17 +71,7 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
|||
const username = document.getElementById('username') as HTMLDivElement;
|
||||
|
||||
|
||||
// const value = await client.chatTest();
|
||||
// if (value.kind === "success") {
|
||||
// console.log(value.payload);
|
||||
// }
|
||||
// else if (value.kind === "notLoggedIn") {
|
||||
|
||||
// } else {
|
||||
// console.log('unknown response: ', value);
|
||||
// }
|
||||
|
||||
// Helper to add a message locally
|
||||
|
||||
const addMessage = (text: string) => {
|
||||
if (!chatWindow) return;
|
||||
|
|
@ -90,10 +92,10 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
|||
const message = {
|
||||
type: "chat",
|
||||
user: user.name,
|
||||
id: document.cookie,
|
||||
token: document.cookie,
|
||||
text: msgText,
|
||||
timestamp: Date.now(),
|
||||
userID: socket.id,
|
||||
SenderWindowID: socket.id,
|
||||
};
|
||||
socket.send(JSON.stringify(message));
|
||||
}
|
||||
|
|
@ -150,3 +152,14 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
|
|||
|
||||
};
|
||||
addRoute('/chat', handleChat, { bypass_auth: true });
|
||||
// const value = await client.chatTest();
|
||||
// if (value.kind === "success") {
|
||||
// console.log(value.payload);
|
||||
// }
|
||||
// else if (value.kind === "notLoggedIn") {
|
||||
|
||||
// } else {
|
||||
// console.log('unknown response: ', value);
|
||||
// }
|
||||
|
||||
// Helper to add a message locally
|
||||
|
|
@ -28,52 +28,60 @@ export function setupSocketIo(fastify: import('fastify').FastifyInstance): void
|
|||
fastify.ready((err) => {
|
||||
if (err) throw err;
|
||||
|
||||
function broadcast(message: any, sender?: any) {
|
||||
|
||||
fastify.io.fetchSockets().then((sockets) => {
|
||||
console.log("Connected clients:", sockets.length);
|
||||
for (const s of sockets) {
|
||||
|
||||
if (s.id !== sender) {
|
||||
s.emit('MsgObjectServer',{ message: `${message}` });
|
||||
console.log("Socket ID:", s.id);
|
||||
console.log("Rooms:", [...s.rooms]);
|
||||
console.log("Sender:", sender ? sender : 'none');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// console.log(Object.getOwnPropertyNames(Object.getPrototypeOf(fastify.io)));
|
||||
fastify.io.on('connection', (socket : Socket) => {
|
||||
console.info('Socket connected!', socket.id);
|
||||
// socket.on('hello', (value) => {
|
||||
// return 'hi';
|
||||
// });
|
||||
// function broadcast(message: any, sender?: any) {
|
||||
|
||||
// fastify.io.fetchSockets().then((sockets) => {
|
||||
// console.log("Connected clients:", sockets.length);
|
||||
// for (const s of sockets) {
|
||||
|
||||
// if (s.id !== sender) {
|
||||
// s.emit('MsgObjectServer',{ message: `${message}` });
|
||||
// console.log("Socket ID:", s.id);
|
||||
// console.log("Rooms:", [...s.rooms]);
|
||||
// console.log("Sender:", sender ? sender : 'none');
|
||||
// console.log("ID:", message.text ? message.text : 'none');
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
function broadcast(data: any, sender?: string) {
|
||||
fastify.io.fetchSockets().then((sockets) => {
|
||||
console.log("Connected clients:", sockets.length);
|
||||
|
||||
// socket.emit("MsgObjectServer", {message: `THIS IS A SERVER MESSAGE`});
|
||||
socket.on('message', (message: string) => {
|
||||
// console.log(color.red + `GOT MESSAGE ${color.reset} ${value}`);
|
||||
for (const s of sockets) {
|
||||
if (s.id !== sender) {
|
||||
// Send REAL JSON object
|
||||
s.emit("MsgObjectServer", { message: data });
|
||||
|
||||
console.log(color.green + `GOT MESSAGE from client ${socket.id}: ${color.reset} ${message}`);
|
||||
const obj = JSON.parse(message);
|
||||
const userID = obj.userID;
|
||||
console.log(`Message from client ${obj.userID}: ${obj.text}`);
|
||||
broadcast(`Broadcast from THIS server: ${obj.text}`,userID);
|
||||
console.log(" emit window socket ID:", s.id);
|
||||
console.log(" emit window ID:", [...s.rooms]);
|
||||
console.log(" Sender window ID:", sender ? sender : "none");
|
||||
console.log(" text recieved:", data.text ? data.text : "none");
|
||||
console.log(color.red, "data:", color.reset, data ? data : "none");
|
||||
}
|
||||
}
|
||||
});
|
||||
// socket.on('MsgObjectServer', (value) => { console.log(`GOT COUCOU ${value.message}`)
|
||||
//broadcast(`Broadcast from server:`, socket.id );
|
||||
// });
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// console.log(Object.getOwnPropertyNames(Object.getPrototypeOf(fastify.io)));
|
||||
fastify.io.on('connection', (socket : Socket) => {
|
||||
console.info(color.blue, 'Socket connected!', color.reset, socket.id);
|
||||
socket.on("message", (message: string) => {
|
||||
console.log(color.blue, `Received message from client`, color.reset, message);
|
||||
const obj = JSON.parse(message); // { userID, text }
|
||||
console.log(color.green, `Message from client`, color.reset, `${obj.userID}: ${obj.text}`);
|
||||
|
||||
// Send object directly — DO NOT wrap it in a string
|
||||
broadcast(obj, obj.SenderWindowID);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
socket.on('testend', (sock_id_cl : string) => {
|
||||
console.log('testend received from client socket id:', sock_id_cl);
|
||||
|
|
@ -86,11 +94,7 @@ export function setupSocketIo(fastify: import('fastify').FastifyInstance): void
|
|||
|
||||
|
||||
});
|
||||
// fastify.io.on('disconnect', (socket : Socket) => {
|
||||
// console.log('weeeeeeeeeeeewoooooooooooooooooooooooooo');
|
||||
// console.log('alert in the high castle');
|
||||
// console.log('Socket disconnected!', socket.id);
|
||||
// });
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue