IMHO, It should use no.2 strategy.
User should subscribe to:
- user own channel ( to render chat list / left side)
- room channel that currently opened (to render room and messages / right side )
In my previous experience I would also separate presence channel and typing channel, for it’s logic dependency, especially typing , it’s quite crowded and need minimal logic intervention.






















