comment in notifyJoin says:
// notify the _other_ people
which makes sense; there's no reason to send to the user who just joined since we already sent him ack_join; he already knows he's in the room.
But, join calls notifyJoin _after_ adding the new user to _users, so he'll get the (redundant) notification too.
I suggest calling notifyJoin before _users.put instead. (Since it's synchronised, there's no difference to other threads.) Otherwise, the comment should be changed to reflect what is actually happening.
Maarten van Hoof
How do the current clients handle these messages? I would expect that they send ack_join directly to the screen and maintain the list of users in a room by listening for userdiff messages.
both taso's client and mine do a /who after receiving ack_join and use that list. but if some client didn't do this, it could still know it's in the room from the fact of the ack_join.
ok. in that case go and change it:)