Puedes registrar funciones de gestión de eventos con el eventHandlers Propiedad de los componentes OTSession, OTPublisher y 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>
    );
  }
}

En los apartados siguientes se define la estructura de los distintos objetos de evento.

Archivo de eventos

El objeto OTSession gestiona archiveStarted y archiveStopped eventos cuando un archivo inicia y finaliza una sesión. El objeto de evento tiene las siguientes propiedades:

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

AudioNetworkStats

Para obtener datos de audio de un suscriptor, registra un detector de eventos para el audioNetworkStats evento. El objeto «evento» tiene las siguientes propiedades:

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

SubscriberCaptionEvent

Para obtener los subtítulos de un suscriptor, registra un detector de eventos para el captionReceived evento. El objeto «evento» tiene las siguientes propiedades:

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

Evento de creación de conexión

A continuación puedes ver la estructura del objeto:

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

Evento de conexión interrumpida

A continuación puedes ver la estructura del objeto:

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

ErrorEvent

A continuación puedes ver la estructura del objeto:

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

MuteForcedEvent

event = {
  active: boolean;
}

PublisherVideoNetworkStatsEvent

Para obtener datos de vídeo de un editor, registra un detector de eventos para el OTPublisher videoNetworkStats evento. El objeto tiene la siguiente estructura:

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

Ten en cuenta que este objeto de evento es una matriz de objetos. Consulta la documentación de OTPublisher videoNetworkStats evento.

Editor, Audio, Red, Estadísticas, Evento

Para obtener datos de audio de un editor, registra un detector de eventos para el OTPublisher audioNetworkStats evento. El objeto tiene la siguiente estructura:

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

Ten en cuenta que este objeto de evento es una matriz de objetos. Consulta la documentación de OTPublisher audioNetworkStats evento.

RtcStatsReportEvent

A continuación puedes ver la estructura del objeto:

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

SessionConnectEvent

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

SessionDisconnectEvent

event = {
  sessionId: string;
}

SignalEvent

El objeto OTSession envía un signal evento que se produce al recibir una señal. Consulta el Guía para desarrolladores de señalización. El objeto «event» tiene las siguientes propiedades:

  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

A continuación puedes ver la estructura del objeto:

  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,
  };

Evento de nivel de audio del suscriptor

  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

A continuación puedes ver la estructura del objeto:

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

Evento de informe de estadísticas de RTC del suscriptor

  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
  ];