Breakout rooms are a space within the main room where peers can participate in smaller groups for focused discussions during an ongoing session in the main room with a larger group of participants. The audio/video of participants can be available depending upon the permissions set from the 100ms template.
Example use case:
- In the main room, the host is broadcasting along with some co-hosts
- Guests are listening to this stream
- During the stream, you want the guests to break out into smaller rooms
- Discuss among themselves, with or without watching the main room stream
Understand roles to enable breakout room
You can implement breakout rooms using roles in 100ms. A role is a collection of permissions that allows you to perform a particular set of operations while being part of the room. You can create a role using the 100ms Dashboard or server API.
Now, let's decide on the Architecture of Breakout Rooms, which will help create several breakout roles and set permissions accordingly.
Publish Strategy: This determines the tracks (audio/video/screen-share) and their quality that a role can publish.
- For example:
- Host - This role can publish audio and video and also share screen.
- Video Quality at 720p.
- Video aspect ratio is 16:9 and screen share quality is 1080p
- For example:
Try breakout room
Let's consider the below flow to try out breakout room:
- The host and co-host are on the main stage of the stream, and the moderator in backstage.
- Guests are viewers watching a stream conducted by the host and co-host.
- Now guests want to discuss while watching the stream in the breakout room.
Create a template with roles host, co-host, guest, moderator and breakout room.
- Publish Strategy - can publish all tracks (audio/video/screen-share)
- Subscribe Strategy - subscribed to roles of host, co-host and moderator
- Permissions - has all the permissions from the dashboard
Demo using 100ms links
In this section, we will walk you through a demo of breakout rooms using 100ms demo links.
View - before moving to breakout room
Now, for the roles created from the previous section, you can check how the stream looks for each participant before moving to the breakout room based on their respective role.
Host: can see/hear co-host and moderator
Note: This is 100ms sample app UI on Web. You can customize the UI completely as per your requirements. Refer to this guide for more information.
Move guests to breakout room
Fetch list of participants: The moderator can fetch the list of participants from the peer list.
Change role to breakout room role:
- The moderator can change the role of the participants with the guest role to move them from the main room to the breakout room.
- The role change can be forced by the moderator or upon permission granted by the guest.
Role changed to breakout room
View of Breakout room
Once the roles are changed, guests can see and listen to each other and simultaneously watch the stream in the main room.
You can enable the permission for the guest role in the template to self-movement to the breakout room.
Integrate in your app
To integrate breakout rooms in your app, follow these steps:
- Create roles to enable breakout room
- Client-side integration - to manage breakout room
- Server-side integration - to create roles and manage breakout room
Once the template is set up with roles to enable the breakout room, you can change a single peer role API to change a participant's role from one specific role to another. You can force the role change or do it upon permission granted by the guest.
If a participant has to change another participant's role, you must enable respective permission for that role in the template.
Check the below links for more information on the change role API for respective platforms:
You can use server-sider APIs to manage this entirely from the server side.
- Create a template with roles host, co-host, guest, moderator, and breakout room with respective publish/subscribe strategies and permissions.
- To create a template with these roles, you can use the create a template API.
- To create these roles to an existing template, you can use the create a role API.
Change roles: You can use the update a peer API in conjunction with the list peers API to fetch the list of participants with role information and change their role to "breakout room" to move them to a breakout room.
Record a breakout room
You can pass the meeting URL of the breakout room role in the browser-based recording, where the beam will record the breakout room. More on browser-based recording here.
Note: Currently, 100ms supports only one beam per room; hence you can either record the main room or any of the breakout rooms. Although Supporting Multi beam is in the pipeline.
Example customer implementation
Mingout automated the matching of participants, created predefined roles on the fly using template API and then automated the movement of participants without any manual intervention. More on that here.