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