In a knock-enabled Room, a user needs to wait until the Moderator grants them permission to join the Session. The EnxRoom.approveAwaitedUser() method allows the Moderator to approve a user’s entry and EnxRoom.denyAwaitedUser() method is used to decline a user’s entry to the Session.

Methods:

  • -approveAwaitedUser:clientID
  • -denyAwaitedUser: clientID

Parameters:

  • clientID: Client ID of the user awaiting the Moderator’s approval.

Delegate Methods:

  • - room:diduserAwaited – Notification to the Moderator when a user awaits their permission to join Room.
  • - room:didRoomAwaited – Notification to the user when they await Moderator’s permission to connect Room with { “event_type”: “knock” } in the JSON Payload.
  • - room:didAckForApproveAwaitedUser – Acknowledgment to the Moderator when the user is granted permission to join Room.
  • - room:didConnect – Notification to the user when the user is permitted to join Room.
  • - room:didAckForDenyAwaitedUser – Acknowledgment to the Moderator when the user is denied permission to join Room.
  • - room:didRoomDisconnect – Notification to the user along with a reason for denial when the user is denied access to the Room.
// Moderator is notified about awaited user
-(void)room:(EnxRoom *_Nullable)room diduserAwaited:(NSArray *_Nullable)data  {
	// Awaited Client Info in the data, e.g.
	// [{"id","String", "name": "String”}] 
	
	[room approveAwaitedUser:id];  // To allow

	[room denyAwaitedUser:id]; // To deny
	 
};

-(void)room:(EnxRoom *_Nullable)room didAckForApproveAwaitedUser:(NSArray *_Nullable)data; 
{	// User has been allowed entry	
}

-(void)room:(EnxRoom *_Nullable)room didAckForDenyAwaitedUser:(NSArray *_Nullable)data {
	// User has been denied entry	
}

To manage awaited users when moderator joins late

If the Moderator joins after the participant(s) have sent a request to join the Session in a Knock-enabled Room, then the Moderator can get the list of participants awaiting approval using room.awaitedParticipants. You can utilize this attribute to build UI for Moderator controls to handle pending approvals.

// e.g. room.awaitedParticipants

[
	{	"clientId”: "String", 
		"name": "String" 
	}
]