Sie können Ereignisbehandlungsfunktionen mit der eventHandlers Eigenschaft der Komponenten „OTSession“, „OTPublisher“ und „OTSubscriber“:

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

    this.sessionEventHandlers = {
      streamCreated: event => {
        console.log('Stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Stream destroyed!', event);
      },
      sessionConnected: event => {
        console.log('Connected to the session!');
      },
      sessionDisconnected: event => {
        console.log('Disconnected from the session!');
      }
    };

    this.subscriberEventHandlers = {
      connected: event => {
        console.log('Subscriber connected!', event);
      },
      disconnected: event => {
        console.log('Subscriber disconnected!', event);
      }
    };

    this.publisherEventHandlers = {
      streamCreated: event => {
        console.log('Stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Stream destroyed!', event);
      }
    };
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" eventHandlers={this.sesssionEventHandlers}>
        <OTPublisher eventHandlers={this.publisherEventHandlers}/>
        <OTSubscriber eventHandlers={this.suscriberEventHandlers} />
      </OTSession>
    );
  }
}

In den folgenden Abschnitten wird die Struktur verschiedener Ereignisobjekte beschrieben.

Archiv-Veranstaltung

Das OTSession-Objekt leitet weiter archiveStarted und archiveStopped Ereignisse wenn ein Archiv startet und beendet eine Sitzung. Das Ereignisobjekt verfügt über die folgenden Eigenschaften:

  archive = {
    archiveId: string, // The archive ID.
    name: string, // The archive name.
    sessionId: string, // The session ID.
  };

AudioNetworkStats

Um Audiodaten für einen Abonnenten abzurufen, registrieren Sie einen Ereignis-Listener für das audioNetworkStats Ereignis. Das Ereignisobjekt verfügt über die folgenden Eigenschaften:

  event = {
    audioBytesReceived: number,
    audioPacketsLost: number,
    audioPacketsReceived: number,
    timeStamp: number,
  };

SubscriberCaptionEvent

Um Untertitel für einen Abonnenten abzurufen, registrieren Sie einen Ereignis-Listener für das captionReceived Ereignis. Das Ereignisobjekt verfügt über die folgenden Eigenschaften:

  event = {
    text: string,
    isFinal: boolean,
  };

Verbindungserstellungsereignis

Die Struktur des Objekts finden Sie unten:

  event = {
    sessionId: string;
    connection = {
      connectionId: string
      creationTime: string,
      data: string,
    }
  }

ConnectionDestroyedEvent

Die Struktur des Objekts finden Sie unten:

  event = {
    sessionId: string;
    connection = {
      connectionId: string
      creationTime: string,
      data: string,
    }
  }

Fehlerereignis

Die Struktur des Objekts finden Sie unten:

  event = {
    code: string,
    message: string,
  };

MuteForcedEvent

event = {
  active: boolean;
}

PublisherVideoNetworkStatsEvent

Um Videodaten für einen Publisher abzurufen, registrieren Sie einen Ereignis-Listener für den OTPublisher. videoNetworkStats Ereignis. Das Objekt hat folgende Struktur:

  event = [
      {
      connectionId: string,
      subscriberId: string,
      videoPacketsLost: number,
      videoBytesSent: number,
      videoPacketsSent: number,
      timestamp: number,
    }
  ];

Beachten Sie, dass dieses Ereignisobjekt ein Array von Objekten ist. Weitere Informationen finden Sie in der Dokumentation zum OTPublisher. videoNetworkStats Veranstaltung.

PublisherAudioNetworkStatsEvent

Um Audiodaten für einen Publisher abzurufen, registrieren Sie einen Ereignis-Listener für den OTPublisher. audioNetworkStats Ereignis. Das Objekt hat folgende Struktur:

  event = [
      {
      connectionId: string,
      subscriberId: string,
      audioPacketsLost: number,
      audioPacketsSent: number,
      audioBytesSent: number,
      timeStamp: number,
    }
  ];

Beachten Sie, dass dieses Ereignisobjekt ein Array von Objekten ist. Weitere Informationen finden Sie in der Dokumentation zum OTPublisher. audioNetworkStats Veranstaltung.

RtcStatsReportEvent

Die Struktur des Objekts finden Sie unten:

  event = {
    connectionId: string,
    jsonArrayOfReports: string,
  };

SessionConnectEvent

event = {
  sessionId: string;
  connection: {
    connectionId: string,
    creationTime: string,
    data: string,
  },
}

SessionDisconnectEvent

event = {
  sessionId: string;
}

SignalEvent

Das OTSession-Objekt sendet eine signal Ereignis, wenn ein Signal empfangen wird. Siehe die Leitfaden für Signalisierungsentwickler. Das Ereignisobjekt verfügt über die folgenden Eigenschaften:

  event = {
    type: string, // Either 'signal' or 'signal:type'.
    data: string, // The data.
    connectionId: string, // The connection ID of the client that sent the signal.
  };

StreamCreatedEvent

Die Struktur des Objekts finden Sie unten:

  stream = {
    streamId: string;
    name: string;
    connectionId: string, // This will be removed after v0.11.0 because it's exposed via the connection object
    connection: {
      connectionId: string,
      creationTime: string,
      data: string,
    },
    hasAudio: boolean,
    hasVideo: boolean,
    sessionId: string,
    creationTime: number,
    height: number,
    width: number,
    videoType: string, // 'camera' or 'screen'
  };

StreamDestroyedEvent

  event = {
    streamId: string;
    name: string;
    connectionId: string;
    connection: {
      connectionId: string,
      creationTime: string,
      data: string,
    },
    hasAudio: boolean,
    hasVideo: boolean,
    sessionId: string,
    creationTime: number,
    height: number,
    width: number,
    videoType: string, // 'camera' or 'screen'
  };

StreamPropertyChangedEvent

  event = {
    stream: {
      streamId: string,
      name: string,
      connectionId: string, // This will be removed after v0.11.0 because it's exposed via the connection object
      connection: {
        connectionId: string,
        creationTime: number,
        data: string,
      },
      hasAudio: boolean,
      hasVideo: boolean,
      sessionId: string,
      creationTime: number,
      height: number,
      width: number,
      videoType: string, // 'camera' or 'screen'
    },
    oldValue: any,
    newValue: any,
    changedProperty: string,
  };

SubscriberAudioLevelEvent

  event = {
    audioLevel: number;
    stream: {
      streamId: string,
      name: string,
      connectionId: string, // This will be removed after v0.11.0 because it's exposed via the connection object
      connection: {
        connectionId: string,
        creationTime: number,
        data: string,
      },
      hasAudio: boolean,
      hasVideo: boolean,
      sessionId: string,
      creationTime: number,
      height: number,
      width: number,
      videoType: string, // 'camera' or 'screen'
    },
  };

VideoNetworkStatsEvent

Die Struktur des Objekts finden Sie unten:

  event = {
    senderStats: {
      connectionMaxAllocatedBitrate: number,
      connectionEstimatedBandwidth: number
    },
    videoPacketsLost: number,
    videoBytesReceived: number,
    videoPacketsReceived: number,
    timestamp: number
  };

SubscriberRtcStatsReportEvent

  event = {
    stream: {
      streamId: string;
      name: string;
      connectionId: string;
      connection: {
        connectionId: string,
        creationTime: string,
        data: string,
      },
      hasAudio: boolean,
      hasVideo: boolean,
      sessionId: string,
      creationTime: number,
      height: number,
      width: number,
      videoType: string, // 'camera' or 'screen'
    },
    jsonArrayOfReports: string
  };

PublisherRtcStatsReportEvent

  event = [
    connectionId: string,
    jsonArrayOfReports: string
  ];