Enabling sender-side statistics
Um absenderseitige Statistiken zu erhalten, aktivieren Sie diese für den Herausgeber des Streams, indem Sie die publishSenderStats Eigenschaft eingestellt auf true im OT.initPublisher anrufen:
const publisher = OT.initPublisher({
publishSenderStats: true
});
Wenn publishSenderStats nicht aktiviert ist, wird kein Absenderstatistikkanal für diesen Verlag veröffentlicht. Der Standardwert ist false.
Bei der Initialisierung des Publisher-Objekts setzen Sie die audioFallback Eigenschaft der Option, die Sie an die OT.initPublisher() Methode:
Subscribing to sender-side statistics
Abonnenten erhalten nur dann automatisch Absenderstatistiken, wenn der Herausgeber diese aktiviert hat und wenn der Benutzer die Subscriber.getStats() mindestens einmal. Beachten Sie, dass aufgrund der Netzwerklatenz der erste Aufruf von getStats enthält möglicherweise keine Absenderstatistiken. Bei späteren Aufrufen ist es wahrscheinlicher, dass diese Daten zurückgegeben werden.
Es sind keine zusätzlichen Ereignisse oder Methoden erforderlich; die Absenderstatistiken sind in den bestehenden stats Objekt zurückgegeben von getStats().
Receiving statistics events
Absenderstatistiken sind als optionales Element enthalten senderStats Objekt innerhalb der stats Objekt, das an die Subscriber.getStats() Rückruf. Die senderStats Objekt enthält zwei Eigenschaften:
connectionMaxAllocatedBitrate- Die maximale Bitrate, die für die Verbindung geschätzt werden kann (in Bits pro Sekunde)connectionEstimatedBandwidth- Die aktuell geschätzte Bandbreite für die Verbindung (in Bits pro Sekunde)
Diese beiden Metriken werden pro Audio-Video-Bündel berechnet, so dass sowohl in der Video- als auch in der Audiostatistik die gleichen Werte erscheinen. Da sie den Transport und nicht einzelne Tracks widerspiegeln, werden die Metriken sowohl für Audio als auch für Video verwendet.
subscriber.getStats((stats) => {
console.log(`Packets received: ${stats.videoPacketsReceived}`);
console.log(`Packets lost: ${stats.videoPacketsLost}`);
console.log(`Bytes received: ${stats.videoBytesReceived}`);
console.log(`Timestamp: ${stats.timestamp}`);
if (stats.senderStats) {
console.log(`Connection max allocated bitrate: ${stats.senderStats.connectionMaxAllocatedBitrate} bps`);
console.log(`Connection current estimated bandwidth: ${stats.senderStats.connectionEstimatedBandwidth} bps`);
} else {
console.log("Sender stats not available yet.");
}
});
Known issues
In einigen Fällen, wenn die Sitzung weitergeleitet wird - oder in bestimmten gerouteten Setups mit nur zwei Teilnehmern - und der Publisher Firefox verwendet, sind aufgrund von Browsereinschränkungen möglicherweise keine absenderseitigen Statistiken verfügbar.