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 |