Channel addressing should be robust against reordering (deleting some channel). The nicknames are the obvious choice for consistent naming. I should really support addressing channels via those. Another one would be generating UUIDs. There could be a combination: The client said "3" or "Channel B", the socket worker figures out that this is the fourth channel, all right ... what when the channel numbering changes just before then issuing the action?

Pairing up an UUID would give way for the now perhaps wrongly addressed channel to respond that it isn't who the client thought. On the other hand, channel addressing should be atomic: When you find the channel named "Channel B", you can just hand over the action right now. If I decide to cache a channel list that could outdate, then I would create trouble. I should not make it too difficult: I just need addressing using the nicknames and some guarantee that nicknames are unique. A read/write barrier would ensure consistency without having clients block each other.
