A simple and privacy respecting chatroom build using Socket.io and tons of other libraries.
How it works:
If a user logs into a room they create a socket.io connection to the cpp backend and push their requested room and nickname. The user is then sorted into the correct broadcast-room and attributes are persisted. A login or logout also triggers an event that pushes data on the current users in the room to all connected clients.
From here on out the server is mostly just a routing and broadcasting system that distributes messages to all clients.
- images and other embeds (youtube etc)
- Messages coloring for easy identification
CPP passes all user-generated output though DOMPurify before rendering