The EnxRoom.pinUsers()
method allows the Moderator to pin a user(s) to the Active Talker List irrespective of the user’s activity level. A pinned user’s Stream is always published in the Room even if they are not talking. The inactive pinned users are placed in the Active Talker List after the actively talking users in a descending order based on the activity level with the most active talker on top. The total number of pinned users in a Room is restricted to (max_active_talkers
– 1) based on the Room configuration.
On joining a Room, the user is notified via
event with Room Meta Information, which contains the list of pinned users as room-connected
"pinnedUsers": [ /*client-ids*/ ]
.
The EnxRoom.unpinUsers()
method is used to unpin the user(s).
Methods:
EnxRoom.pinUsers(clientIds[], callback)
EnxRoom.unpinUsers(clientIds[], callback)
Parameters:
clientIds
– Array of Client IDs of users whose streams need to be pinned or unpinned.callback
– Returns response information of the pin or unpin requests in JSON Payload{ result : Number, clients[] }
result
– 0 if success. An error-code in case of an error.clientIds
– Array of Client IDs passed to pin or unpin along with respective result code.
Event Notifications:
updated-pinned-users
– Notification to everyone in the Room with an updated list of pinned users in a JSON format:{ "moderator_id": String, clientIds: [] }
moderator_id
– Moderator responsible for updating the pinned user list.clientI
ds – Array of Client_ids of users who are pinned.
// To pin users room.pinUsers(clientIDs, function(resp) { // resp json { "result": Number, "clients": [] } }) // To unpin users room.unpinUsers(clientIDs, function(resp) { // resp json { "result": Number, "clientIds": [] } }) // Everyone is notified with updated pinned user list room.addEventListener('updated-pinned-users', function(event) { // event json { "moderator_id": String, "clientIds": [] } });