Moderation – Web
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
- Einen Client zwingen, die Verbindung zu trennen
- Einen Client dazu zwingen, die Veröffentlichung eines Streams zu beenden
- Stummschalten des Tons von Streams in einer Sitzung
Überprüfung der Moderationsrechte
Sobald Sie sich mit einer Sitzung verbunden haben, können Sie überprüfen, ob der Client Moderationsrechte hat. Überprüfen Sie den Wert des capabilities.forceDisconnect oder capabilities.forceUnpublish Eigenschaft der Session Objekt. Ist er auf 1 gesetzt, kann der Client moderieren:
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.
}
Einen Client zwingen, die Verbindung zu trennen
Moderatoren können jeden Kunden dazu zwingen, die Verbindung zur Sitzung zu trennen. Um einen Client zum Trennen der Verbindung zu zwingen, rufen Sie die Funktion forceDisconnect() Methode des Session-Objekts und übergibt das Connection-Objekt für den Client, dessen Verbindung getrennt werden soll:
session.forceDisconnect(connection);
Sie können Referenzen auf Verbindungsobjekte erhalten, wenn das Session-Objekt eine connectionCreated Veranstaltung. Siehe Erkennen, wann andere Clients eine Verbindung hergestellt und getrennt haben. Sie können das Verbindungsobjekt für jeden Stream auch über die connection Eigenschaft des Stream-Objekts.
Einen Client dazu zwingen, die Veröffentlichung eines Streams zu beenden
Moderatoren können jeden Anbieter eines Streams dazu zwingen, das Streaming für die Sitzung zu beenden. Um die Beendigung eines Streams zu erzwingen, rufen Sie die forceUnpublish() Methode des Session-Objekts und übergibt das Stream-Objekt, das Sie anhalten möchten:
session.forceUnpublish(stream);
Sie können Referenzen auf Stream-Objekte erhalten, wenn das Session-Objekt eine sessionConnected Ereignis und ein streamCreated Veranstaltung. Siehe Verfügbare Streams bei der Verbindung mit einer Sitzung abrufen und Erkennen, wann neue Streams erstellt werden. Sie können auch ein Stream-Objekt von der stream Eigenschaft eines Subscriber-Objekts.
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() Methode des Session-Objekts und übergibt das Stream-Objekt, das den Stream repräsentiert, den Sie stummschalten möchten:
session.forceMuteStream(stream)
.then(function() {
console.log("successfully called.");
}).catch(function(error) {
console.log("Error: ", error);
});
Die Session.forceMuteStream() Methode gibt ein Promise zurück, das zurückgewiesen wird, wenn der Aufruf fehlschlägt. Wenn der Client beispielsweise keine Moderationsrechte hat, wird die Promise mit dem name Eigenschaft des Error-Objekts auf "OT_PERMISSION_DENIED". In diesem Zusammenhang bedeutet Erfolg, dass die der Methode übergebenen Optionen gültig sind und die Anforderung, den Stream stummzuschalten, gesendet wurde. Er garantiert nicht, 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 und übergibt ein Array von Streams, die von der Stummschaltung ausgeschlossen werden sollen:
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 Session-Objekts:
session.disableForceMute();
Nachdem Sie die Session.disableForceMute() werden neue Streams, die in der Sitzung veröffentlicht werden, nicht mehr stummgeschaltet.
Sie können Referenzen auf Stream-Objekte erhalten, wenn das Session-Objekt eine sessionConnected Ereignis und ein streamCreated Veranstaltung. Siehe Verfügbare Streams bei der Verbindung mit einer Sitzung abrufen und Erkennen, wann neue Streams erstellt werden. Sie können auch ein Stream-Objekt von der stream Eigenschaft eines Subscriber-Objekts.
Wenn der Stream als Ergebnis einer dieser Methoden (oder durch eine der folgenden Methoden) stummgeschaltet wird Stummschaltung des Stream-Aufrufs in einem anderen Client SDK erzwingen), wobei bei jedem Client, der einen stummgeschalteten Stream veröffentlicht, das Publisher-Objekt ein muteForced Veranstaltung.
Ähnlich verhält es sich mit der Aufforderung an die Session.forceMuteAll() Methode (oder zu einer Stummschaltung aller Anrufe in einem anderen Client SDK erzwingen), sendet das Session-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 Session.disableForceMute() Methode (oder zu einer Stummschaltung in einem anderen Client SDK deaktivieren), sendet das Session-Objekt in jedem mit der Sitzung verbundenen Client ein muteForced Ereignis, und die active Eigenschaft des Ereignisobjekts wird auf false.