Moderación — Web

Cuando conectarse a una sesión Con un token que incluya privilegios de moderador, puedes obligar a otros clientes a desconectarse de una sesión, detener la publicación de una transmisión o silenciar su audio:

Comprobación de los privilegios de moderación

Una vez que te hayas conectado a una sesión, puedes comprobar si el cliente tiene permisos de moderador. Comprueba el valor de la capabilities.forceDisconnect o capabilities.forceUnpublish propiedad del Session objeto. Si se establece en 1, el cliente puede moderar:

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.
}

Forzar la desconexión de un cliente

Los moderadores pueden obligar a cualquier cliente a desconectarse de la sesión. Para obligar a un cliente a desconectarse, llama a la función forceDisconnect() método del objeto `Session`, pasando como parámetro el objeto `Connection` correspondiente al cliente que deseas desconectar:

session.forceDisconnect(connection);

Puede obtener referencias a objetos Connection cuando el objeto Session envíe un comando connectionCreated evento. Véase Detección de la conexión y desconexión de otros clientes. También puedes obtener el objeto «Connection» de cualquier flujo a partir del connection propiedad del objeto Stream.

Obligar a un cliente a dejar de publicar una transmisión

Los moderadores pueden obligar a cualquier emisor de una retransmisión a dejar de retransmitir en la sesión. Para forzar la interrupción de una retransmisión, llama a la función forceUnpublish() método del objeto `Session`, pasando como parámetro el objeto `Stream` que deseas detener:

session.forceUnpublish(stream);

Puede obtener referencias a objetos Stream cuando el objeto Session envía un comando sessionConnected y un streamCreated evento. Véase Obtención de los flujos disponibles al conectarse a una sesión y Detectar cuándo se crean nuevas secuencias. También puede obtener un objeto Stream de la función stream de un objeto Suscriptor.

Silenciar el audio de los flujos de una sesión

Los moderadores pueden obligar a todos los clientes o a un editor de un flujo específico a silenciar su audio publicado.

Para obligar a un editor de un flujo específico a silenciar su audio, llame a la función forceMuteStream() método del objeto `Session`, pasando como parámetro el objeto `Stream` que representa el flujo que deseas silenciar:

session.forceMuteStream(stream)
  .then(function() {
    console.log("successfully called.");
  }).catch(function(error) {
    console.log("Error: ", error);
  });

El Session.forceMuteStream() El método devuelve una Promise que se rechaza si la llamada falla. Por ejemplo, si el cliente no tiene privilegios de moderación, la Promise se rechaza con el name propiedad del objeto Error establecida en "OT_PERMISSION_DENIED". En este contexto, el éxito indica que los parámetros pasados al método son válidos y que se ha enviado la solicitud para silenciar la transmisión. No garantiza que la solicitud se haya ejecutado correctamente.

Los moderadores también pueden forzar que todas las transmisiones (excepto un conjunto opcional de ellas) de una sesión silencien el audio publicado. Llama a la función forceMuteAll() del objeto Session, pasando una matriz de flujos que desea excluir del silenciamiento:

session.forceMuteAll(excludedStreams);

Una retransmisión publicada por el moderador en la que se hace referencia al forceMuteAll() se silencia junto con otras secuencias de la sesión, a menos que añadas la secuencia (o secuencias) del moderador a la matriz de secuencias excluidas.

Si omites el excludedStreams todas las secuencias de la sesión (incluidas las del moderador) dejarán de publicar audio:

session.forceMuteAll();

Además, cualquier flujo que se publique después de la llamada a la función forceMuteAll() se publican con el audio silenciado. Puede eliminar el estado de silencio de una sesión llamando al método disableForceMute() del objeto Session:

session.disableForceMute();

Después de llamar a la Session.disableForceMute() De esta forma, las nuevas retransmisiones publicadas en la sesión ya no tendrán el audio silenciado.

Puede obtener referencias a objetos Stream cuando el objeto Session envía un comando sessionConnected y un streamCreated evento. Véase Obtención de los flujos disponibles al conectarse a una sesión y Detectar cuándo se crean nuevas secuencias. También puede obtener un objeto Stream de la función stream de un objeto Suscriptor.

Cuando el flujo se silencia como resultado de uno de estos métodos (o de un forzar llamada a flujo mudo en otro cliente SDK), en cada cliente que publica un flujo silenciado, el objeto Publisher envía un muteForced evento.

Del mismo modo, en respuesta a una llamada al Session.forceMuteAll() método (o a un Forzar el silencio de todas las llamadas en otro Client SDK), el objeto «Session» de cada cliente conectado a la sesión envía un muteForced y el evento active La propiedad del objeto de evento se establece en true.

Y en respuesta a una llamada a la Session.disableForceMute() método (o a un desactivar la llamada forzada al silencio en otro cliente SDK), el objeto «Session» de cada cliente conectado a la sesión envía un muteForced y el evento active La propiedad del objeto de evento se establece en false.