Moderação — Web

Quando você conectar-se a uma sessão Com um token que inclua privilégios de moderador, você pode forçar outros clientes a se desconectarem de uma sessão, interromper a transmissão de um stream ou silenciar o áudio deles:

Verificando se há privilégios de moderação

Depois de se conectar a uma sessão, você pode verificar se o cliente tem permissão para moderar. Verifique o valor do capabilities.forceDisconnect ou capabilities.forceUnpublish propriedade do Session objeto. Se estiver definido como 1, o cliente pode 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.
}

Forçar a desconexão de um cliente

Os moderadores podem forçar qualquer cliente a se desconectar da sessão. Para forçar um cliente a se desconectar, chame a função forceDisconnect() método do objeto Session, passando o objeto Connection correspondente ao cliente que você deseja desconectar:

session.forceDisconnect(connection);

É possível obter referências a objetos Connection quando o objeto Session despacha um connectionCreated evento. Veja Detectar quando outros clientes se conectaram e se desconectaram. Você também pode obter o objeto Connection para qualquer fluxo a partir do connection propriedade do objeto Stream.

Forçar um cliente a interromper a publicação de um stream

Os moderadores podem obrigar qualquer emissor de uma transmissão a interromper a transmissão para a sessão. Para forçar a interrupção de uma transmissão, chame a função forceUnpublish() método do objeto Session, passando o objeto Stream que você deseja interromper:

session.forceUnpublish(stream);

É possível obter referências a objetos Stream quando o objeto Session despacha um sessionConnected evento e um streamCreated evento. Veja Obter fluxos disponíveis ao se conectar a uma sessão e Detectar quando novos fluxos são criados. Você também pode obter um objeto Stream a partir do stream propriedade de um objeto Subscriber.

Silenciar o áudio das transmissões em uma sessão

Os moderadores podem forçar todos os usuários ou um editor de uma transmissão específica a silenciar o áudio publicado.

Para forçar um emissor de uma transmissão específica a silenciar seu áudio, chame a função forceMuteStream() método do objeto Session, passando o objeto Stream que representa o fluxo que você deseja silenciar:

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

O Session.forceMuteStream() O método retorna uma Promise que é rejeitada caso a chamada falhe. Por exemplo, se o cliente não tiver privilégios de moderação, a Promise é rejeitada com o name propriedade do objeto Error definida como "OT_PERMISSION_DENIED". Nesse contexto, o sucesso indica que os parâmetros passados ao método são válidos e que a solicitação para silenciar o fluxo foi enviada. Isso não garante que a solicitação tenha sido atendida com sucesso.

Os moderadores também podem forçar todas as transmissões (exceto um conjunto opcional de transmissões) em uma sessão a silenciar o áudio publicado. Chame a função forceMuteAll() método do objeto Session, passando um array de fluxos que você deseja excluir do silenciamento:

session.forceMuteAll(excludedStreams);

Uma transmissão publicada pelo moderador chamando o forceMuteAll() O método é silenciado junto com outras transmissões da sessão, a menos que você adicione a transmissão (ou transmissões) do moderador à matriz de transmissões excluídas.

Se você deixar de fora o excludedStreams parâmetro, todas as transmissões da sessão (incluindo as do moderador) deixarão de transmitir áudio:

session.forceMuteAll();

Além disso, quaisquer streams publicados após a chamada à função forceMuteAll() As sessões são publicadas com o áudio silenciado. É possível desativar o silenciamento de uma sessão chamando a função disableForceMute() método do objeto Session:

session.disableForceMute();

Depois de chamar a Session.disableForceMute() Com esse método, as novas transmissões publicadas na sessão não terão mais o áudio silenciado.

É possível obter referências a objetos Stream quando o objeto Session despacha um sessionConnected evento e um streamCreated evento. Veja Obter fluxos disponíveis ao se conectar a uma sessão e Detectar quando novos fluxos são criados. Você também pode obter um objeto Stream a partir do stream propriedade de um objeto Subscriber.

Quando a transmissão é silenciada como resultado de um desses métodos (ou a partir de um forçar o silenciamento da chamada de streaming em outro Client SDK), em cada cliente que publica um fluxo silenciado, o objeto Publisher despacha um muteForced evento.

Da mesma forma, em resposta a uma ligação para o Session.forceMuteAll() método (ou a um silenciar à força todas as chamadas em outro Client SDK), o objeto Session em cada cliente conectado à sessão despacha um muteForced evento, e o active a propriedade do objeto do evento está definida como true.

E em resposta a uma ligação para o Session.disableForceMute() método (ou a um desativar o silenciamento forçado de chamadas em outro Client SDK), o objeto Session em cada cliente conectado à sessão despacha um muteForced evento, e o active a propriedade do objeto do evento está definida como false.