Requisiten | Sitzungsoptionen | Methoden | Veranstaltungen

Die OTSession Die Komponente verwaltet die Verbindung zu einer OpenTok-Sitzung. Sie übergibt die Sitzungs-ID an die sessionId Eigenschaft an ihre untergeordneten Komponenten. Um die Sitzung zu trennen, heben Sie die Einbindung der OTSession Komponente. Um zu veröffentlichen und zu abonnieren, müssen Sie OTPublisher und OTSubscriber innerhalb OTSession:

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      isConnected: false,
    };

    this.otSessionRef = React.createRef();

    this.sessionEventHandlers = {
      streamCreated: event => {
        console.log('Stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Stream destroyed!', event);
      },
      sessionConnected: event => {
        this.setState({
          isConnected: true,
        })
      }
    };
  }

  sendSignal = () => {
    if (this.state.isConnected) {
      this.otSessionRef.current.signal({
        data: 'hello',
        to: '6d26ca65-24c9-45df-b827-424e9952dece', // optional - connection ID of client to recieve the signal
        type: 'greeting', // optional
      })
    }
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" eventHandlers={this.sesssionEventHandlers} ref={this.otSessionRef}>
        <OTPublisher style={{ width: 100, height: 100 }}/>
        <OTSubscriber style={{ width: 100, height: 100 }} />
      </OTSession>
    );
  }
}

Sie können die Sitzungsoptionen mithilfe der options Requisite:

class App extends Component {
constructor(props) {
  super(props);
  this.sessionOptions = {
    connectionEventsSuppressed: true, // default is false
    androidZOrder: '', // Android only - valid options are 'mediaOverlay' or 'onTop'
    androidOnTop: '',  // Android only - valid options are 'publisher' or 'subscriber'
    useTextureViews: true,  // Android only - default is false
    ipWhitelist: false, // (/developer/sdks/js/reference/OT.html#initSession - ipWhitelist
    enableStereoOutput: true // Enable stereo output, default is false
    enableSinglePeerConnection: true // Enable single peer connection, default is false
    iceConfig:{
      transportPolicy: 'all', // Valid options are 'all' or 'relay'. Default is 'all'
      includeServers: 'all', // Valid options are 'all' or 'custom'. Default is 'all'
      customServers: [
        {
        urls: [
          'turn:123.124.125.126:3478?transport=udp',
          'turn:123.124.125.126:3478?transport=tcp'
        ],
        username: 'webrtc',
        credential: 'foO0Bar1'
        },
      ],
      filterOutLanCandidates: false, // The default is false
    },
  };
}

render() {
  return (
    <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" options={this.sessionOptions}>
      <OTPublisher style={{ width: 100, height: 100 }}/>
      <OTSubscriber style={{ width: 100, height: 100 }} />
    </OTSession>
  );
}
}

Bitte beachten Sie, dass alle Sitzungsoptionen optional sind. Siehe Sitzungsoptionen.

Requisiten

Das OTSession-Objekt verfügt über die folgenden Eigenschaften:

apiKey (Zeichenkette, erforderlich) – Der API-Schlüssel des OpenTok-Projekts.

sessionId (Zeichenkette, erforderlich) – Die OpenTok-Sitzungs-ID.

Token (Zeichenkette, erforderlich) – Das OpenTok-Token für den Client.

Optionen (Objekt, optional) – Dient zur Festlegung von Sitzungsoptionen. Siehe Sitzungsoptionen.

Signal (Objekt, optional) – Dient dazu, ein Signal an die Sitzung zu senden

Ereignisbehandler (Objekt, optional) – Ein Objekt, das Schlüssel-Wert-Paare aus Ereignisnamen und Callback-Funktionen für Ereignisbehandler enthält. Siehe Veranstaltungen.

VerschlüsselungGeheimnis (Zeichenkette, optional) – Das Verschlüsselungsgeheimnis, das für alle Streams verwendet werden soll, die der Client veröffentlicht und abonniert (in einer Sitzung mit End-to-End-Verschlüsselung). Siehe End-to-End-Verschlüsselung Entwicklerhandbuch.

Sitzungsoptionen

Die options Das „prop“ der OTSession-Komponente verfügt über die folgenden Eigenschaften (die jeweils optional sind):

androidZOrder (Zeichenkette) – Auf „mediaOverlay“ oder „onTop“ setzen. Nur Android.

androidOnTop (Zeichenkette) – Auf „publisher“ | „subscriber“ setzen. Nur Android.

connectionEventsSuppressed (Boolescher Wert) -- Ob verhindert werden soll, dass connectionCreated und connectionDestroyed Verhindern, dass ein Ereignis gesendet wird. Möglicherweise möchten Sie diese Ereignisse in großen Sitzungen unterdrücken, wie sie beispielsweise für Interaktive Live-Videoübertragungen. Der Standardwert ist „false“.

Stereoausgabe aktivieren (Boolescher Wert) – Gibt an, ob die Stereoausgabe aktiviert werden soll. Der Standardwert ist „false“.

enableSinglePeerConnection (Boolesch) -- Auf true damit der Client eine einzelne Peer-Verbindung verwendet. Der Standardwert ist false. Bitte beachten Sie, dass diese Funktion nur in weitergeleiteten Sitzungen verfügbar ist. Weitere Informationen finden Sie unter diese Dokumentation.

iceConfig (Objekt) -- Einstellungen für die Verwendung des konfigurierbare TURN-Funktion. Diese Funktion ist als Add-on-Feature.

Dieses Objekt weist die folgenden Eigenschaften auf:

  • includeServers (Zeichenkette) Gibt an, ob der Client ausschließlich Ihre TURN-Server verwenden soll („custom“) oder diese zusätzlich zu den OpenTok-TURN-Servern nutzen soll („all“).

  • transportPolicy 'all' | 'relay';

  • customServers (Array) – Ein Array von Objekten, die benutzerdefinierte TURN-Server festlegen, die verwendet werden sollen. Jedes Objekt verfügt über die folgenden Eigenschaften:

    • urls (Zeichenfolgen-Array) – Die URLs des TURN-Servers.
    • username (Zeichenkette, optional) – Der Benutzername.
    • credential: (Zeichenkette, optional) – Die Anmeldedaten für den TURN-Server.
  • filterOutLanCandidates -- Legt fest, ob ICE-Kandidaten vom selben lokalen Netzwerk herausgefiltert werden sollen, wodurch die Anwendung daran gehindert wird, das lokale Netzwerk zum Aufbau einer Medienverbindung zu nutzen. Diese Einstellung gilt nur für iOS (und wird unter Android ignoriert). Durch das Herausfiltern lokaler Kandidaten wird verhindert, dass die App den Nutzer um Erlaubnis bittet, wenn sie versucht, in einer weitergeleiteten Sitzung Clients im selben lokalen Netzwerk zu abonnieren.

Beachten Sie, dass - anders als bei den anderen iceConfig Einstellungen -- diese Einstellung bewirkt nicht erfordern die konfigurierbarer TURN-Server Add-on-Funktion.

Für weitere Informationen siehe diese Dokumentation.

ipWhitelist (Boolescher Wert) – Gibt an, ob die Liste der zugelassenen IP-Adressen Funktion. Diese ist verfügbar als Add-on-Feature Der Standardwert ist „false“.

isCamera2Capable (Boolesch) – Veraltet und wird ignoriert. Nur Android.

proxyUrl (Zeichenkette, optional) – Die für die Sitzung zu verwendende Proxy-URL. Dies ist eine Erweiterung Funktion. Siehe die OpenTok IP-Proxy Leitfaden für Entwickler.

sessionMigration (Boolescher Wert) – Aktiviert die Funktion zur Sitzungsmigration, sodass der Client während der Serverrotation verbunden bleiben kann. Der Standardwert ist „false“ (Sitzungsmigration ist nicht aktiviert). Weitere Informationen finden Sie unter Server-Rotation und Sitzungsmigration.

useTextureViews (Boolesch) -- Auf true um Texturansichten zu verwenden. Die Standardeinstellung ist false. Nur für Android.

Methoden

disableForceMute() Hebt den aktiven Stummschaltungsstatus der Sitzung auf. Nachdem Sie diese Methode aufgerufen haben, wird bei neuen Streams, die in der Sitzung veröffentlicht werden, der Ton nicht mehr stummgeschaltet.

Nachdem Sie die Methode `Session.forceMuteAll()` aufgerufen haben (oder ein Moderator in einem anderen Client den Befehl zum Stummschalten aller Streams gegeben hat), werden alle Streams, die nach diesem Moderatorbefehl veröffentlicht werden, mit stummgeschaltetem Ton übertragen. Rufen Sie die OTSession.disableForceMute() Methode zum Aufheben der Stummschaltung einer Sitzung (damit neu veröffentlichte Streams nicht automatisch stummgeschaltet werden).

Prüfen Sie die capabilities.canForceMute Eigenschaft des Objekts, das von OTSession.getCapbabilities() um zu prüfen, ob Sie diese Funktion erfolgreich aufrufen können. Dies ist Clients vorbehalten, die sich mit einem Token verbunden haben, dem die Moderatorenrolle zugewiesen wurde (siehe die Dokumentation zur Token-Erstellung).

getSessionInfo() Gibt ein Objekt mit den folgenden Eigenschaften zurück:

  • sessionId (Zeichenkette) -- Die Sitzungs-ID.

  • connection (Objekt) – Ein Objekt, das die Verbindung des lokalen Clients zur Sitzung definiert. Es umfasst die folgenden Eigenschaften:

    • connectionId (Zeichenkette) -- Die Verbindungs-ID des lokalen Clients.

    • creationTime(Zeichenkette) – Der Zeitpunkt, zu dem die Verbindung hergestellt wurde.

    • data (Zeichenkette) -- Die Verbindungsdaten für den lokalen Client.

getCapabilities() Gibt an, ob der Client in der Sitzung Streams veröffentlichen und abonnieren kann, basierend auf den dem Client-Token wird verwendet, um eine Verbindung zur Sitzung herzustellen. Die Methode gibt ein Promise zurück, das ein Objekt mit den folgenden Eigenschaften liefert:

  • canForceMute (Boolescher Wert) – Gibt an, ob der Client das Stummschalten von Streams in der Sitzung erzwingen oder den aktiven Stummschaltstatus in einer Sitzung deaktivieren kann (true) oder nicht (false).

  • canPublish (Boolesch) -- Gibt an, ob der Client Streams in der Sitzung veröffentlichen kann (true) oder nicht (false).

  • canSubscribe (Boolescher Wert) -- Gibt an, ob der Client in der Sitzung Streams abonnieren kann (true) oder nicht (false).

Das Versprechen wird abgelehnt, wenn Sie keine Verbindung zur Sitzung hergestellt haben und die connectionCreated Das Ereignis wurde ausgelöst.

Weitere Informationen finden Sie in der OpenTok-Token-Dokumentation.

reportIssue() Hiermit können Sie melden, dass bei Ihrer App ein Problem aufgetreten ist (zur Ansicht unter Inspektor oder um sich mit dem Vonage-API-Supportteam in Verbindung zu setzen.) Die Methode gibt ein Promise zurück, das mit einer Zeichenkette – der Problem-ID – aufgelöst wird.

forceDisconnect() Zwingt einen mit der Sitzung verbundenen Client, die Verbindung zur Sitzung zu trennen. Übergeben Sie die Verbindungs-ID des verbundenen Clients als Parameter.

Prüfen Sie die capabilities.canForceDisconnect Eigenschaft des Objekts, das von OTSession.getCapbabilities() um zu prüfen, ob Sie diese Funktion erfolgreich aufrufen können. Dies ist Clients vorbehalten, die sich mit einem Token verbunden haben, dem die Moderatorenrolle zugewiesen wurde (siehe die Dokumentation zur Token-Erstellung).

forceMuteAll() Zwingt alle Sender in der Sitzung (mit Ausnahme derjenigen, die ausgeschlossene Streams übertragen), den Ton stummzuschalten.

Diese Methode hat einen optionalen Parameter – excludedStreams, sowie ein Array mit Stream-IDs. Ein vom Moderator veröffentlichter Stream, der die Methode `forceMuteAll()` aufruft, wird zusammen mit den anderen Streams in der Sitzung stummgeschaltet, es sei denn, Sie fügen den Stream (oder die Streams) des Moderators zur excludedStreams Array. Wenn Sie das excludedStreams Parameter werden alle Streams in der Sitzung (einschließlich derjenigen des Moderators) nicht mehr übertragen. Außerdem werden alle Streams, die nach dem Aufruf der Funktion forceMuteAll() Methode werden mit stummgeschaltetem Ton veröffentlicht. Sie können den Stummschaltzustand einer Sitzung aufheben, indem Sie die Methode OTSession.disableForceMute() Methode.

Nachdem Sie die Session.disableForceMute() Nach dem Aufruf dieser Methode wird der Ton bei neuen Streams, die an die Sitzung gesendet werden, nicht mehr stummgeschaltet. Der Aufruf dieser Methode bewirkt, dass die Publisher-Objekte in den Clients, die die Streams senden, „muteForced“-Ereignisse auslösen. Außerdem löst das Session-Objekt in jedem mit der Sitzung verbundenen Client das „muteForced“-Ereignis aus (wobei die Eigenschaft „active“ des Ereignisobjekts auf „true“ gesetzt wird).

Prüfen Sie die capabilities.canForceMute Eigenschaft des Objekts, das von OTSession.getCapbabilities() um zu prüfen, ob Sie diese Funktion erfolgreich aufrufen können. Dies ist Clients vorbehalten, die sich mit einem Token verbunden haben, dem die Moderatorenrolle zugewiesen wurde (siehe die Dokumentation zur Token-Erstellung).

forceMuteStream() Erzwingt, dass der Herausgeber eines bestimmten Streams dessen Ton stummschaltet. Übergeben Sie die Stream-ID des Streams als Parameter.

Prüfen Sie die capabilities.canForceMute Eigenschaft des Objekts, das von OTSession.getCapbabilities() um zu prüfen, ob Sie diese Funktion erfolgreich aufrufen können. Dies ist Clients vorbehalten, die sich mit einem Token verbunden haben, dem die Moderatorenrolle zugewiesen wurde (siehe die Dokumentation zur Token-Erstellung).

signal() Sendet ein Signal an die mit der Sitzung verbundenen Clients. Die Methode hat einen Parameter, ein Objekt, das die folgenden Eigenschaften enthält, von denen jede optional ist (obwohl man in der Regel die data Eigenschaft):

  • connectionId (Zeichenkette) – Die Verbindungs-ID des Clients, an den das Signal gesendet werden soll. Wird dieser Parameter weggelassen, wird das Signal an alle Clients gesendet, die mit der Sitzung verbunden sind.

  • type (Zeichenkette) -- Der Signaltyp.

  • data (Zeichenkette) -- Die Signaldaten.

Weitere Informationen finden Sie in der OpenTok-Entwicklerhandbuch zur Signalisierung

Veranstaltungen

Archiv gestartet (Objekt) — Wird gesendet, wenn die Archivaufzeichnung einer Sitzung beginnt. Wenn Sie sich mit einer Sitzung verbinden, bei der die Aufzeichnung bereits läuft, wird diese Nachricht beim Herstellen der Verbindung gesendet. Ein Archiv-Veranstaltung Das Objekt wird an den Ereignis-Handler übergeben.

Archiv gestoppt (Zeichenkette) — Wird gesendet, wenn die Archivierung einer Sitzung beendet wird. Ein Archiv-Veranstaltung Das Objekt wird an den Ereignis-Handler übergeben.

Verbindung erstellt (Objekt) — Wird gesendet, wenn sich ein weiterer Client mit der Sitzung verbindet. Das Verbindungsobjekt repräsentiert die Verbindung des Clients. A Verbindungserstellungsereignis Das Objekt wird an den Ereignis-Handler übergeben.

Verbindung unterbrochen -- Wird gesendet, wenn ein anderer Client die Verbindung zur Sitzung trennt. Das Verbindungsobjekt repräsentiert die Verbindung, die der Client zur Sitzung hatte. A ConnectionDestroyedEvent Das Objekt wird an den Ereignis-Handler übergeben.

Fehler (Objekt) — Wird gesendet, wenn der Versuch, eine Verbindung zur Sitzung herzustellen, fehlschlägt oder wenn die Verbindung zur Sitzung nach einer erfolgreichen Herstellung aufgrund eines Fehlers unterbrochen wird. Ein Fehlerereignis Das Objekt wird an den Ereignis-Handler übergeben.

muteForced -- Wird gesendet, wenn ein Moderator Clients, die Streams in der Sitzung veröffentlichen, dazu gezwungen hat, den Ton stummzuschalten (die active Eigenschaft von diesem MuteForcedEvent Das Objekt ist auf true) oder ein Moderator hat den Status „Audio stummschalten“ in der Sitzung deaktiviert (die Eigenschaft „active“ dieses MuteForcedEvent Das Objekt ist auf false). Ein Fehlerereignis Das Objekt wird an den Ereignis-Handler übergeben.

otrnError -- Wird gesendet, wenn ein Fehler bei der Kommunikation zwischen der nativen Sitzungsinstanz und der JS-Komponente auftritt.

sessionConnected -- Wird gesendet, wenn der Client eine Verbindung zur Sitzung herstellt. A SessionConnectEvent Das Objekt wird an den Ereignis-Handler übergeben.

Sitzung getrennt -- Wird gesendet, wenn der Client die Verbindung zur Sitzung trennt. A SessionDisconnectEvent Das Objekt wird an den Ereignis-Handler übergeben.

sessionReconnected -- Wird gesendet, wenn der lokale Client die Verbindung zur OpenTok-Sitzung wiederhergestellt hat, nachdem die Netzwerkverbindung vorübergehend unterbrochen war.

Sitzung wird neu verbunden -- Wird gesendet, wenn der lokale Client die Verbindung zu einer OpenTok-Sitzung verloren hat und versucht, die Verbindung wiederherzustellen. Dies ist auf einen Ausfall der Netzwerkverbindung zurückzuführen. Wenn der Client die Verbindung zur Sitzung wiederherstellen kann, wird die sessionReconnected Die Nachricht wird gesendet. Andernfalls, wenn der Client die Verbindung nicht wiederherstellen kann, wird die sessionDisconnected Nachricht gesendet wird.

Signal -- Wird gesendet, wenn in der Sitzung ein Signal empfangen wird. A SignalEvent Das Objekt wird an den Ereignis-Handler übergeben.

streamCreated -- Wird gesendet, wenn in dieser Sitzung ein neuer Stream erstellt wird. A StreamCreatedEvent Das Objekt wird an den Ereignis-Handler übergeben.

streamDestroyed -- Wird gesendet, wenn ein Stream nicht mehr an die Sitzung übertragen wird. A StreamDestroyedEvent Das Objekt wird an den Ereignis-Handler übergeben.

streamPropertyChanged -- Wird gesendet, wenn ein Stream mit der Übertragung von Audio oder Video begonnen oder diese beendet hat oder wenn sich die Videoabmessungen des Streams geändert haben. A StreamPropertyChangedEvent Das Objekt wird an den Ereignis-Handler übergeben.