First, the client needs to open a connection to the server. Then it sends a “room request” (which is a uuid string). After being granted acccess to that room, the server sends back the unique ID of this client in the room, and also informs all other clients in the room about the new one. Likewise, when a client leaves a room, all others in the room are informed by the server.
Then, during regular operation (a client is in a room), a custom bunch of bytes (the “client custom message to other clients”) would be sent to the server, given a short check there, and be distributed to all clients (again, of the room).
A client can not send to others before being granted “entry” to a room and having a unique ID in that room.