In a live interactive streaming channel, the host can invite an audience to take on the role of co-host, or change role back to audience.
You can implement this function by combining the following features:
Before proceeding, ensure that you have integrated both the Agora RTM SDK and RTC SDK in your project. For how to integrate these SDKs, see the following guides:
The basic API call sequence is as follows:
Refer to the detailed steps for implementation:
sendMessageToPeer to send a peer-to-peer message that invites an audience to take on the role pf co-host.onMessageReceived callback.setClientRole to change the user role to CLIENT_ROLE_BROADCASTER.onClientRoleChanged callback, and becomes a co-host.addOrUpdateChannelAttributes to notify the role change to all users in the channel.onAttributesUpdated callback, and starts co-hosting with the new co-host.To change a co-host back to an audience, follow the same steps, except when calling setClientRole, set the user role as CLIENT_ROLE_AUDIENCE.
The methods mentioned in this article are in Java. Refer to the following table if you are programming in a different language:
| Java/C++ | Objective-C | JavaScript |
|---|---|---|
sendMessageToPeer |
sendMessage |
sendMessage |
onMessageReceived |
messageReceived |
MessageFromPeer |
setClientRole |
setClientRole |
setClientRole |
onClientRoleChanged |
didClientRoleChanged |
Client.on("client-role-changed") |
addOrUpdateChannelAttributes |
addOrUpdateChannelAttributes |
addOrUpdateChannelAttributes |
onAttributesUpdated |
attributeUpdate |
AttributesUpdated |