Remove Peer
Someone's overstayed their welcome and now you need to remove a peer from the video call room. removePeer
method of HMSSDK
instance comes to rescue.
Permissions
Can't let just anyone remove others from the video call room. First, you need to create a role with the permissions to remove others.
Only the peers who has role with remove permissions allowed will be able to Remove peers from the Room.
You can check if you (local peer) have permission to remove peers as follows -
const localPeer = await hmsInstance.getLocalPeer(); // Permissions are available on `HMSRole` object of Local Peer const localPeerPermissions: HMSPermissions = localPeer.role?.permissions; // Check if Local Peer has Remove Peer Permission const canRemoveOthers: boolean = localPeerPermissions?.removeOthers;
Remove Peers
You can use removePeer
method available on HMSSDK
instance to remove peers from the room.
removePeer
method accepts two parameters:
- peer:
HMSPeer
object of the peer that you want to remove - reason:
string
reason for removal. Target Peer will receive this reason inHMSUpdateListenerActions.ON_REMOVED_FROM_ROOM
event
Make sure you have above mentioned permission for removePeer
to work.
try { const reason = 'removed from room'; await hmsInstance.removePeer(peer, reason); // peer is `HMSPeer` object of the peer to remove console.log('Remove Peer Success'); } catch (error) { console.log('Remove Peer Error: ', error); }
Remove Peer Notification
This section explains how to handle the app UI when you (local peer) are removed from the room by someone else.
Once the peer with adequate permissions calls removePeer
, the removed peer will receive a HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM
event.
You can update your apps' UI and Free Resources on receive of HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM
event.
const onRemovedFromRoom = (data: { requestedBy: HMSPeer | null, reason: string, roomEnded: boolean }) => { // Free App resources and do cleanup destroy(); // Redirect to home screen or Navigate away from Meeting screen navigation.navigate('Home'); }; hmsInstance.addEventListener(HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM, onRemovedFromRoom);
💡 Note: This is the same event that will be emitted if a peer ends the room. Except that roomEnded
will be false
when a peer is removed from room.
Description of keys of data received from HMSUpdateListenerActions.ON_REMOVED_FROM_ROOM
event:
- reason: The
string
message detailing why the peer was removed. - requestedBy:
HMSPeer
object of the peer who calledremovePeer
. - roomEnded:
false
if only the receiving peer(local peer) was removed.true
if the entire room was ended.