
Partager:
Michael est le bâtisseur chauve et barbu. Fort de ses 20 ans d'expérience dans le développement de logiciels et DevOps, ce développeur aux prises avec des difficultés folliculaires passe ses journées à aider les autres à réussir.
Bannir les trolls ! Ajouter la modération à l'API Video
Temps de lecture : 3 minutes
Bienvenue sur l'internet ! Si vous êtes ici depuis plus de cinq minutes, vous avez probablement compris que la modération des utilisateurs est indispensable. Il en va de même pour les sessions Video API. Les mauvais acteurs peuvent perturber les réunions et les présentations s'ils sont laissés à eux-mêmes. Dans ce billet, nous allons examiner quelques moyens de garantir la sécurité de vos sessions Video API pour tous.
Hors limites
Il existe quelques processus que vous devriez mettre en place et qui sortent du cadre de cet article. Nous en aborderons quelques-uns d'un point de vue conceptuel, mais les spécificités de la mise en œuvre dépendent de l'architecture de vos applications.
Vous n'êtes plus là
Lorsque vous retirez une personne d'une session Video API, assurez-vous que vous ne la déconnectez pas seulement de la session vidéo, mais que vous la redirigez également et/ou que vous révoquez son authentification.
... Et restez à l'écart
Pour qu'un utilisateur puisse participer à une session Video, il a besoin d'un jeton. Veillez à identifier les personnes à qui vous attribuez des jetons. Cela peut se faire par le biais d'un système d'authentification ou, si les utilisateurs se joignent de manière anonyme, par leur adresse IP. Ensuite, lorsque vous supprimez un utilisateur, notez que "l'utilisateur X" a été supprimé d'une session.
Une fois que vous savez qui sont les mauvais acteurs, vous pouvez éviter de réémettre des jetons par inadvertance et de leur permettre d'accéder à nouveau à la session.
Prendre le contrôle
Les bases ci-dessus étant posées, parlons maintenant des capacités intégrées de l'API Video en matière de modération des utilisateurs.
Vous voulez passer directement à la fin ? Vous pouvez trouver un exemple fonctionnel et tout le code source de ce tutoriel sur GitHub.
Shhhhhh
Nous avons tous participé à un appel au cours duquel quelqu'un a laissé son microphone non assourdi. Qu'il s'agisse d'une seule personne ou d'un public, nous devons pouvoir couper le son des participants. Pour ce faire, nous utiliserons la fonction de signalisation de l'API Video. Commençons par la mise en sourdine d'une personne.
Dans l'interface utilisateur de votre client, vous voudrez ajouter du code qui arrête la publication de l'audio. Tout d'abord, assurez-vous de conserver votre éditeur lorsque vous l'initialisez. Cela vous permettra d'accéder à l'objet ultérieurement et de publier/dépublier votre audio et votre vidéo.
Nous ajouterons ensuite une méthode qui empêchera l'éditeur de publier des fichiers audio à la demande.
let publisher = OT.initPublisher('publisher');
function muteAudio() {
publisher.publishAudio(false);
}Nous pouvons appeler cette méthode à partir de l'interface des invités s'ils choisissent de couper leur microphone, mais nous l'utiliserons également lorsque nous recevrons des signaux de l'hôte. Ajoutons un peu de code pour écouter ces signaux.
Une fois la session créée, ajoutez ce qui suit pour commencer à écouter les signaux personnalisés dont le type est mute comme type. Lorsque nous recevons un signal à mutenous appellerons notre fonction muteAudio pour arrêter la publication de l'audio.
// listens for the custom signal type 'mute' and 'muteAll' and
// calls the muteAudio function to stop publishing audio to the session
session.on("signal:mute", function (event) {
muteAudio();
});Notre côté client étant prêt, ajoutons un peu de logique à l'interface des hôtes pour envoyer ces signaux. Nous commencerons par ajouter une méthode pour gérer tous nos signaux.
/**
* Send a signal to all or specific members of the Video API session
* @param {Object} session Video API session to send signal through
* @param {String} type Type of signal being sent (the topic)
* @param {String} data Payload to send with the signal
* @param {Object} [to] An optional Video API connection or array of connections for use in sending to individual connections
*/
function signal(session, type, data, to) {
const signalData = Object.assign({}, { type, data }, to ? { to } : {});
session.signal(signalData, function (error) {
if (error) {
console.log(['signal error (', error.code, '): ', error.message].join(''));
} else {
console.log('signal sent');
}
});
};Nous pouvons maintenant ajouter des fonctions pour communiquer avec les membres de la session de l'API Video. Ajoutons deux méthodes pour leur signaler de couper le son. L'une des fonctions enverra un signal à un invité spécifique et l'autre à tous les invités de la session.
/**
* Mutes a subscriber in the session
* @param {Object} subscriber The Video API subscriber object
*/
function muteSubscriber(subscriber) {
signal(session, 'mute', '', subscriber.stream.connection);
};
/**
* Mutes all guests in the session
*/
function muteAll() {
signal(session, 'mute', '');
};La seule étape restante consisterait à lier un événement, comme le clic d'un bouton, pour appeler ces fonctions.
Je ne veux pas voir ça
Il existe plusieurs raisons pour lesquelles vous pouvez avoir besoin d'empêcher un invité de publier son flux vidéo. Heureusement, l'objet de session de l'API Video fournit une méthode pour le faire. Cependant, le rôle de modérateur doit être attribué au jeton que vous avez utilisé pour rejoindre la session. Pour vous assurer que vous pouvez appeler la méthode forceUnpublish sur une session, vérifiez d'abord les capacités des utilisateurs. La méthode ci-dessous montre comment vérifier vos capacités et appeler la méthode forceUnpublish méthode.
/**
* Force un-publishes a subscriber in the session
* @param {Object} subscriber The OpenTok subscriber object
*/
function unpublishSubscriber(subscriber) {
if (session.capabilities.forceUnpublish == 1) {
session.forceUnpublish(subscriber.stream);
}
}; Le marteau de l'interdiction
Malheureusement, il arrive qu'un invité doive être retiré d'une session. L'équipe à l'origine de l'API Video a veillé à ce que cela soit possible grâce à la méthode forceDisconnect méthode. Comme pour la méthode forceUnpublish vous devez être connecté en tant que modérateur pour l'utiliser. La fonction ci-dessous vérifie cette capacité et force ensuite la déconnexion d'un invité de la session.
/**
* Disconnects a subscriber from the session
* @param {Object} subscriber The OpenTok subscriber object
*/
function disconnectSubscriber(subscriber) {
if (session.capabilities.forceDisconnect == 1) {
session.forceDisconnect(subscriber.stream.connection);
}
}; Synthèse
Lorsqu'elle est mise en œuvre avec des processus et des politiques solides, l'API Video vous donne les outils dont vous avez besoin pour que vos sessions vidéo soient sûres pour tout le monde. Vous voulez en savoir plus sur la mise en œuvre de la modération dans vos sessions Video API de Vonage ? Consultez les ressources ci-dessous :