Moderation — React Native

Wenn Sie mit einer Sitzung verbinden Mit einem Token, das Moderatorenrechte umfasst, können Sie andere Clients zwingen, die Verbindung zu einer Sitzung zu trennen, die Veröffentlichung eines Streams zu beenden oder deren Audio stummzuschalten:

Überprüfung der Moderationsrechte

Sobald Sie eine Verbindung zu einer Sitzung hergestellt haben, können Sie prüfen, ob der Client moderieren kann.

Überprüfen Sie den Wert des capabilities.forceMute Eigenschaft des OTSession-Objekts. Wenn sie auf truekann der Kunde moderieren:

if (session.capabilities.forceMute) {
    // The client can mute participants.
} else {
    // The client cannot mute.
}

Überprüfen Sie den Wert des capabilities.forceDisconnect Eigenschaft des OTSession-Objekts. Wenn sie auf truekann der Kunde moderieren:

if (session.capabilities.forceDisconnect) {
    // The client can force participants to disconnect.
} else {
    // The client cannot force participants to disconnect.
}
<a name="force_disconnect" class="doc-target"></a>

Einen Client zwingen, die Verbindung zu trennen

Um einen Publisher eines bestimmten Streams zu zwingen, seinen Ton stumm zu schalten, rufen Sie die forceDisconnect() Methode von ref to the OTSession component und übergibt die Verbindungs-ID des Clients, den Sie stummschalten wollen:

sessionRef.forceDisconnect('connection-id')
  .then(function() {
    console.log("successfully called.");
  }).catch(function(error) {
    console.log("Error: ", error);
  });

Sie können Referenzen auf Verbindungs-IDs abrufen, die connectionCreated Ereignisbehandler der OTSession-Komponente.

Stummschalten des Tons von Streams in einer Sitzung

Moderatoren können alle Clients oder einen Publisher eines bestimmten Streams dazu zwingen, ihre veröffentlichten Audiodaten stumm zu schalten.

Um einen Publisher eines bestimmten Streams zu zwingen, seinen Ton stumm zu schalten, rufen Sie die forceMuteStream() Ruf die Methode der OTSession-Komponente auf und übergebe dabei die Stream-ID des Streams, den du stummschalten möchtest:

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

Die OTSession.forceMuteStream() Die Methode gibt ein Promise zurück, das abgelehnt wird, wenn der Aufruf fehlschlägt (beispielsweise, wenn der Client keine Moderationsrechte besitzt). In diesem Zusammenhang bedeutet ein Erfolg, dass die an die Methode übergebenen Optionen gültig sind und die Anfrage zum Stummschalten des Streams gesendet wurde. Es wird jedoch nicht garantiert, dass die Anfrage erfolgreich bearbeitet wurde.

Moderatoren können auch erzwingen, dass alle Streams (mit Ausnahme eines optionalen Arrays von Streams) in einer Sitzung stummgeschaltet werden. Rufen Sie die forceMuteAll() Methode des Session-Objekts, wobei Sie ein Array von Streams übergeben, die Sie von der Stummschaltung ausnehmen möchten:

session.forceMuteAll(excludedStreams);

Ein vom Moderator veröffentlichter Stream, der die forceMuteAll() Methode wird zusammen mit anderen Streams in der Sitzung stummgeschaltet, es sei denn, Sie fügen den Stream (oder die Streams) des Moderators zum Array der ausgeschlossenen Streams hinzu.

Wenn Sie die excludedStreams werden alle Streams in der Sitzung (einschließlich der Streams des Moderators) kein Audio mehr veröffentlichen:

session.forceMuteAll();

Außerdem werden alle Streams, die nach dem Aufruf der forceMuteAll() Methode werden mit stummgeschaltetem Ton veröffentlicht. Sie können den Stummschaltzustand einer Sitzung aufheben, indem Sie die Methode disableForceMute() Methode des OTSession-Objekts:

session.disableForceMute();

Nachdem Sie die OTSession.disableForceMute() werden neue Streams, die in der Sitzung veröffentlicht werden, nicht mehr stummgeschaltet.

Sie können Referenzen auf Stream-IDs abrufen, wenn das Session-Objekt eine Anfrage weiterleitet sessionConnected Veranstaltung und streamCreated Veranstaltungen.

Wenn der Stream durch eine dieser Methoden (oder durch eineStummschaltung des Stream-Aufrufs in einem anderen Client SDK erzwingen), wobei bei jedem Client, der einen stummgeschalteten Stream veröffentlicht, das OTPublisher-Objekt ein muteForced Veranstaltung.

Ähnlich verhält es sich mit der Aufforderung an die OTSession.forceMuteAll() Methode (oder zu einer Stummschaltung aller Anrufe in einem anderen Client SDK erzwingen), sendet das OTSession-Objekt in jedem mit der Sitzung verbundenen Client ein muteForced Ereignis, und die active Eigenschaft des Ereignisobjekts wird auf true.

Und als Antwort auf einen Aufruf an die OTSession.disableForceMute() Methode (oder zu einer Stummschaltung in einem anderen Client SDK deaktivieren), das OTSession-Objekt in jedem mit der Sitzung verbundenen Client leitet eine muteForced Veranstaltung, und die active Eigenschaft des Ereignisobjekts wird auf false.