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
- Forçar a desconexão de um cliente
- Forçar um cliente a interromper a publicação de um stream
- Silenciar o áudio das transmissões em uma sessão
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.