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:

  • public void approveAwaitedUser(String clientId)
  • public void denyAwaitedUser(String clientId)

Parameters:

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

Callbacks:

  • onUserAwaited – Notification to the Moderator when a user awaits their permission to join Room.
  • onRoomAwaited – Notification to the user when they await Moderator’s permission to join Room with { “event_type”: “knock” } in the JSON Payload.
  • onAckForApproveAwaitedUser – Acknowledgment to the Moderator when the user is granted permission to join Room.
  • onRoomConnected – Notification to the user when the user is permitted to join Room.
  • onAckForDenyAwaitedUser – Acknowledgment to the Moderator when the user is denied permission to join Room.
  • onRoomDisconnected – 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
public void onUserAwaited(JSONObject jsonObject)  {
	// Awaited Client Info in the jsonObject, e.g.
	// {"id","String", "name": "String”} 
	
	enxRoom.approveAwaitedUser(jsonObject.id);  // To allow user to join room

	enxRoom.denyAwaitedUser(jsonObject.id); // To deny user 
	 
};

public void onAckForApproveAwaitedUser(JSONObject jsonObject) {
	// User has been allowed entry	
}

public void onAckForDenyAwaitedUser(JSONObject jsonObject) {
	// 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" 
	}
]