- One person (Main client) creates a room and shares his public key with others
- For others (Sub client) to join, the public address is used to connect to the main client
- They send a join request to the main client
- As a reply, they get the latest canvas data and the address of all the current members
- When change is made in the canvas, it is broadcasted to all
- When a sub client leaves, it sends a message to all
- When the main client leaves, it makes a sub client main client
- So the join id changes as the public address of the client to which message should be sent to join changes