Você pode registrar funções de manipulador de eventos com o eventHandlers propriedade dos componentes OTSession, OTPublisher e 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>
    );
  }
}

As seções a seguir definem a estrutura dos diferentes objetos de evento.

Arquivo de Eventos

O objeto OTSession distribui archiveStarted e archiveStopped eventos quando um arquivo inicia e encerra uma sessão. O objeto de evento possui as seguintes propriedades:

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

Estatísticas da Rede de Áudio

Para obter dados de áudio de um assinante, registre um ouvinte de eventos para o audioNetworkStats evento. O objeto evento possui as seguintes propriedades:

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

SubscriberCaptionEvent

Para obter legendas para um assinante, registre um ouvinte de evento para o captionReceived evento. O objeto evento possui as seguintes propriedades:

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

Evento de Criação de Conexão

Você pode ver a estrutura do objeto a seguir:

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

Evento de conexão interrompida

Você pode ver a estrutura do objeto a seguir:

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

ErrorEvent

Você pode ver a estrutura do objeto a seguir:

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

MuteForcedEvent

event = {
  active: boolean;
}

EditoraVídeoRedeEstatísticasEvento

Para obter dados de vídeo de um publisher, registre um ouvinte de eventos para o OTPublisher videoNetworkStats evento. O objeto possui a seguinte estrutura:

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

Observe que esse objeto de evento é uma matriz de objetos. Consulte a documentação do OTPublisher videoNetworkStats evento.

EditorÁudioRedeEstatísticasEvento

Para obter dados de áudio de um publisher, registre um ouvinte de eventos para o OTPublisher audioNetworkStats evento. O objeto possui a seguinte estrutura:

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

Observe que esse objeto de evento é uma matriz de objetos. Consulte a documentação do OTPublisher audioNetworkStats evento.

RtcStatsReportEvent

Você pode ver a estrutura do objeto a seguir:

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

SessionConnectEvent

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

Event de Desconexão de Sessão

event = {
  sessionId: string;
}

SignalEvent

O objeto OTSession despacha um signal evento que ocorre quando um sinal é recebido. Consulte o guia do desenvolvedor de sinalização. O objeto de evento possui as seguintes propriedades:

  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

Você pode ver a estrutura do objeto a seguir:

  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 Nível de Áudio do Assinante

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

Evento de Estatísticas da Rede de Vídeos

Você pode ver a estrutura do objeto a seguir:

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

Evento de Relatório de Estatísticas de RTC do Assinante

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