WhatsApp-style UI with LiveView -- Subscribe To All Channels At Once?

Hello all, I’m building a LiveView Chat App and recreating the interface to be like WhatsApp’s Desktop app.

As you can see, the right side is the current chat room, but the left side is a list of every chat room the user is in and it shows updates in realtime to those rooms too.

My question is, what is the most efficient channel strategy for this?

  1. Have the user be subscribed to the channel for every single room he is in? Updates are sent to each room’s channel normally.
  2. Have the user be subscribed to the current chat room channel, and his own channel which is used to update the index view on the left (e.g. “user21_chat_index”). Then, whenever a message is created or updated, it sends the chat over the room channel and to each user’s personal channel.
  3. A different approach from the two above.

Thanks in advance to those who have created something like this before.