Observabilité du client : React Native
Le SDK React Native expose des mesures détaillées de la qualité du flux par le biais d'une API de statistiques de haut niveau - recommandée pour la plupart des cas d'utilisation - qui fournit des statistiques audio, vidéo, réseau et côté expéditeur sous une forme unifiée et consciente de la session, qui reste stable lors des transitions de connexion entre pairs. Pour le débogage avancé, le SDK permet également d'accéder au rapport de statistiques WebRTC brut, qui reflète les données de connexion entre pairs non traitées.
API pour les statistiques audio et vidéo
Le SDK React Native envoie des statistiques réseau audio et vidéo périodiques pour les éditeurs et les abonnés. Ces statistiques comprennent le nombre de paquets, les débits binaires, les données relatives à la fréquence d'images, les mesures de pause et de gel, les informations sur les codecs et l'estimation facultative du réseau du côté de l'expéditeur.
Obtenir des statistiques pour un éditeur
Les Événement PublisherAudioNetworkStats et Événement PublisherVideoNetworkStats vous fournissent un tableau d'objets
d'objets définissant les statistiques audio-vidéo actuelles de l'éditeur.
Pour un éditeur dans une session acheminée (qui utilise la fonction OpenTok
Routeur média), ce tableau comprend un objet, définissant les statistiques pour un seul flux audio-vidéo envoyé au routeur vidéo de Vonage.
le flux audio-vidéo unique envoyé au routeur vidéo de Vonage. Dans une session relayée,
le tableau comprend un objet pour chaque abonné au flux publié.
Le code suivant enregistre certaines mesures pour le flux de l'éditeur :
<OTPublisher
eventHandlers={{
audioNetworkStats: event => {
console.log('publisher audioNetworkStats event', event);
},
videoNetworkStats: event => {
console.log('publisher videoNetworkStats event', event);
},
}}
/>
Obtenir des statistiques pour un abonné
Les AudioNetworkStats et Événement VideoNetworkStats vous fournissent des informations sur le flux de l'abonné.
de l'abonné.
Le code suivant enregistre plusieurs mesures pour le flux de l'abonné :
<OTSubscriber
eventHandlers={{
audioNetworkStats: event => {
console.log('subscriber audioNetworkStats event', event);
},
videoNetworkStats: event => {
console.log('subscriber videoNetworkStats event', event);
},
}}
/>
Statistiques Structures de données
Cette section présente les objets et les propriétés fournis par l'API de statistiques audio et vidéo. Bien que toutes les plates-formes SDK vidéo exposent le même ensemble de statistiques, il peut y avoir des différences mineures dans la façon dont chaque plate-forme structure ou nomme les champs individuels. Ces variations reflètent les conventions de conception des SDK spécifiques à chaque plateforme plutôt que des différences dans les mesures sous-jacentes.
Pour une explication indépendante de la plate-forme des statistiques disponibles et de ce qu'elles représentent, voir aperçu de l'observabilité du client.
Statistiques de l'éditeur
Fournit des statistiques sur un éditeur.
Statistiques audio de l'éditeur (PublisherAudioNetworkStatsEvent)
Fournit des statistiques sur la piste audio d'un éditeur.
connectionId- L'identifiant unique de la connexion du client, qui correspond à la propriété id de la baliseconnectionde la propriétéconnectionCreatedque l'objet Session a envoyé au client distant (disponible uniquement dans les sessions relayées).subscriberId- L'identifiant unique de l'abonné, qui correspond à la propriété id de l'élémentSubscriberdans l'application du client abonné (disponible uniquement dans les sessions relayées).audioBytesSent- Nombre total d'octets audio envoyés.audioPacketsLost- Total des paquets audio qui n'ont pas atteint l'abonné ou le routeur média.audioPacketsSent- Total des paquets audio envoyés.timeStamp- Horodatage Unix (ms) du moment où les statistiques ont été recueillies.
Statistiques vidéo de l'éditeur (PublisherVideoNetworkStatsEvent)
Ces champs représentent la performance vidéo actuelle de l'éditeur :
connectionId- L'identifiant unique de la connexion du client, qui correspond à la propriété id de la baliseconnectionde la propriétéconnectionCreatedque l'objet Session a envoyé au client distant (disponible uniquement dans les sessions relayées).subscriberId- L'identifiant unique de l'abonné, qui correspond à la propriété id de l'élémentSubscriberdans l'application du client abonné (disponible uniquement dans les sessions relayées).videoBytesSent- Nombre total d'octets vidéo envoyés.videoPacketsLost- Total des paquets vidéo qui n'ont pas atteint l'abonné ou le routeur média.videoPacketsSent- Total des paquets vidéo envoyés.timestamp- Horodatage Unix (ms) du moment où les statistiques ont été recueillies.
Statistiques audio des abonnés (AudioNetworkStats)
Fournit des statistiques sur la piste audio d'un abonné.
audioBytesReceived- Nombre total d'octets audio reçus.audioPacketsLost- Total des paquets audio qui n'ont pas atteint l'abonné.audioPacketsReceived- Total des paquets audio reçus avec succès.timeStamp- Horodatage Unix (ms) du moment où ces statistiques ont été recueillies.
Statistiques vidéo des abonnés (VideoNetworkStatsEvent)
Ces champs décrivent les performances de réception et de décodage vidéo en temps réel de l'abonné :
videoBytesReceived- Nombre total d'octets vidéo reçus.videoPacketsLost- Total des paquets vidéo qui n'ont pas atteint l'abonné.videoPacketsReceived- Total des paquets vidéo reçus.timestamp- Horodatage Unix (ms) du moment où les statistiques ont été recueillies.
Les mesures suivantes fournissent des estimations de la largeur de bande pour la connexion sortante de l'expéditeur :
senderStats.connectionMaxAllocatedBitrate- Débit maximum alloué estimé pour l'émetteur (bps).senderStats.connectionEstimatedBandwidth- Largeur de bande estimée de la liaison montante pour l'émetteur (bps).
Statistiques côté expéditeur
Voir le aperçu des statistiques côté expéditeur.
Activation des statistiques côté expéditeur
Les statistiques côté émetteur sont reçues par les abonnés. Pour recevoir les statistiques côté expéditeur, activez-les pour l'éditeur du flux en passant l'attribut publishSenderStats est définie comme étant la propriété true dans les propriétés de l'éditeur :
class App extends Component {
constructor(props) {
super(props);
this.publisherProperties = {
publishSenderStats: true
};
this.publisherEventHandlers = {
streamCreated: event => {
console.log('Publisher stream created!', event);
},
streamDestroyed: event => {
console.log('Publisher stream destroyed!', event);
}
};
}
render() {
return (
<OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token">
<OTPublisher
properties={this.publisherProperties}
eventHandlers={this.publisherEventHandlers}
style={{ height: 100, width: 100 }}
/>
</OTSession>
);
}
}
Si publishSenderStats n'est pas activé, aucun canal de statistiques sur les expéditeurs ne sera publié pour cet éditeur. La valeur par défaut est false.
Abonnement aux statistiques côté expéditeur
Les abonnés ne reçoivent automatiquement les statistiques de l'expéditeur que si l'éditeur les a activées.
Aucun événement ou méthode supplémentaire n'est nécessaire ; les statistiques relatives à l'expéditeur sont incluses dans la base de données existante des Événement VideoNetworkStats objet de l'événement.
Statistiques de réception Événements
Les statistiques du côté de l'expéditeur sont incluses en tant qu'élément facultatif. senderStats à l'intérieur de l'objet passé à la fonction videoNetworkStats callback. Les senderStats contient deux propriétés :
connectionMaxAllocatedBitrate- Le débit maximum qui peut être estimé pour la connexion (en bits par seconde)connectionEstimatedBandwidth- Largeur de bande actuelle estimée pour la connexion (en bits par seconde)
<OTSubscriber
eventHandlers={{
videoNetworkStats: event => {
if (event.senderStats) {
console.log('subscriber videoNetworkStats event', event.senderStats.connectionMaxAllocatedBitrate);
console.log('subscriber videoNetworkStats event', event.senderStats.connectionEstimatedBandwidth);
}
}
}}
/>
Rapport statistique RTC
Pour obtenir des statistiques de bas niveau sur les connexions entre pairs pour un éditeur, utilisez la commande OTPublisher.getRtcStatsReport() méthode. En réponse à l'appel de la méthode OTPublisher.getRtcStatsReport() méthode l'éditeur rtcStatsReport est invoqué. Voir l'article Événement PublisherRtcStatsReport pour plus d'informations.
<OTPublisher
eventHandlers={{
rtcStatsReport: event => {
console.log('publisher rtcStatsReport event', event);
}
}}
Pour obtenir des statistiques de bas niveau sur les connexions entre pairs pour un abonné, utilisez la commande OTSubscriber.getRtcStatsReport() méthode. En réponse à l'appel de la méthode OTSubscriber.getRtcStatsReport() l'abonné rtcStatsReport est invoqué. Voir l'article Événement SubscriberRTCStatsReport pour plus d'informations.
<OTSubscriber
eventHandlers={{
rtcStatsReport: event => {
console.log('subscriber rtcStatsReport event', event);
}
}}