Modération — Web
Lorsque vous se connecter à une session Si vous disposez d'un jeton doté de privilèges de modérateur, vous pouvez forcer d'autres clients à se déconnecter d'une session, interrompre la diffusion d'un flux ou couper leur son :
- Vérification des droits de modération
- Forcer un client à se déconnecter
- Forcer un client à cesser la diffusion d'un flux
- Désactiver l'audio des flux dans une session
Vérification des droits de modération
Une fois que vous êtes connecté à une session, vous pouvez vérifier si le client dispose des droits de modérateur. Vérifiez la valeur de la capabilities.forceDisconnect ou capabilities.forceUnpublish de la propriété Session objet. S'il vaut 1, le client peut modérer :
if (session.capabilities.forceDisconnect == 1) {
// The client can force disconnect. See the next section.
} else {
// The client cannot force disconnect.
}
if (session.capabilities.forceUnpublish == 1) {
// The client can force unpublish. See the next section.
} else {
// The client cannot force unpublish.
}
Forcer un client à se déconnecter
Les modérateurs peuvent obliger n'importe quel client à se déconnecter de la session. Pour forcer un client à se déconnecter, appelez la fonction forceDisconnect() de l'objet Session, en y ajoutant l'objet Connexion du client à déconnecter :
session.forceDisconnect(connection);
Vous pouvez obtenir des références à des objets de connexion lorsque l'objet Session envoie une commande connectionCreated événement. Voir Détection de la connexion et de la déconnexion d'autres clients. Vous pouvez également obtenir l'objet Connexion pour n'importe quel flux à partir de la fonction connection de l'objet Stream.
Forcer un client à cesser la diffusion d'un flux
Les modérateurs peuvent contraindre tout diffuseur d'un flux à interrompre la diffusion vers la session. Pour forcer l'arrêt d'un flux, appelez la fonction forceUnpublish() de l'objet Session, en lui transmettant l'objet Stream que vous souhaitez arrêter :
session.forceUnpublish(stream);
Vous pouvez obtenir des références à des objets Stream lorsque l'objet Session envoie une commande sessionConnected et un événement streamCreated événement. Voir Obtention des flux disponibles lors de la connexion à une session et Détecter la création de nouveaux flux. Vous pouvez également obtenir un objet Stream à partir de la fonction stream d'un objet Abonné.
Désactiver l'audio des flux dans une session
Les modérateurs peuvent obliger tous les clients ou un éditeur d'un flux spécifique à couper le son qu'ils publient.
Pour forcer un éditeur d'un flux spécifique à couper le son, appelez la commande forceMuteStream() de l'objet Session, en lui transmettant l'objet Stream représentant le flux que vous souhaitez mettre en sourdine :
session.forceMuteStream(stream)
.then(function() {
console.log("successfully called.");
}).catch(function(error) {
console.log("Error: ", error);
});
Les Session.forceMuteStream() renvoie une promesse qui est rejetée si l'appel échoue. Par exemple, si le client n'a pas de privilèges de modération, la promesse est rejetée avec la balise name propriété de l'objet Error fixée à "OT_PERMISSION_DENIED". Dans ce contexte, le succès indique que les options transmises à la méthode sont valides et que la demande de mise en sourdine du flux a été envoyée. Il ne garantit pas que la demande a été traitée avec succès.
Les modérateurs peuvent également forcer tous les flux (à l'exception d'un tableau de flux facultatif) d'une session à couper le son publié. Pour ce faire, il suffit d'appeler la fonction forceMuteAll() de l'objet Session, en passant un tableau de flux que vous souhaitez exclure de l'inhibition :
session.forceMuteAll(excludedStreams);
Un flux publié par le modérateur appelant le forceMuteAll() est mise en sourdine avec les autres flux de la session, à moins que vous n'ajoutiez le (ou les) flux du modérateur au tableau des flux exclus.
Si vous ne tenez pas compte de la excludedStreams tous les flux de la session (y compris ceux du modérateur) cesseront de publier de l'audio :
session.forceMuteAll();
De même, tous les flux publiés après l'appel à la fonction forceMuteAll() sont publiées avec le son coupé. Vous pouvez supprimer l'état de sourdine d'une session en appelant la méthode disableForceMute() de l'objet Session :
session.disableForceMute();
Après avoir appelé le Session.disableForceMute() les nouveaux flux publiés dans la session n'auront plus le son coupé.
Vous pouvez obtenir des références à des objets Stream lorsque l'objet Session envoie une commande sessionConnected et un événement streamCreated événement. Voir Obtention des flux disponibles lors de la connexion à une session et Détecter la création de nouveaux flux. Vous pouvez également obtenir un objet Stream à partir de la fonction stream d'un objet Abonné.
Lorsque le flux est mis en sourdine à la suite de l'une de ces méthodes (ou à la suite d'une commande forcer l'appel de flux muet dans un autre client SDK), pour chaque client publiant un flux en mode silencieux, l'objet Publisher envoie un muteForced événement.
De même, en réponse à un appel au Session.forceMuteAll() (ou à une méthode forcer la mise en sourdine de tous les appels dans un autre client SDK), l'objet Session de chaque client connecté à la session envoie une muteForced et l'événement active de l'objet événement est fixée à true.
Et en réponse à un appel à la Session.disableForceMute() (ou à une méthode désactiver l'appel en sourdine dans un autre client SDK), l'objet Session de chaque client connecté à la session envoie une muteForced et l'événement active de l'objet événement est fixée à false.