-
Notifications
You must be signed in to change notification settings - Fork 53
Description
The XMPP protocol allows peers to either be connected via rosters where two peers communicate if they are in each other's roster list, or via chat rooms where the room is the place that connects the peers.
The presence protocol works well with roster, but with chat rooms the peer is identifier by the room + their nickname within the room, which will be completely different from the JID. Because of that, when a peer leaves the room, the others will get a message where the ID has the form chatroom-uri/nickname, but the actual JID is unknown. When the peer joined initially, they were identified via the AffirmIdentity activity because they broadcasted their actual unique identifier to the other peers. The chatroom ID and the JID are nowhere associated so we are unable to detect when peers leave the room.
To fix that,we need to re-evaluate how identity and presence are managed in "chat room" mode, which was added later as a quicker way to setup the network and avoid having to add everybody to everybody else's roster.