logo home example javascript google-chrome webrtc google-chrome-app peerjs

javascript - home - webrtc logo



¿Hay una API para chrome:// webrtc-internals/variables en javascript? (2)

Lo encontré, tuve que rastrear algunos hilos de la comunidad de google ( thread 1 , thread2 ):

var peerjs = new Peer(...); // initialize peerJS var connections = peerjs.connections;

Conexiones es un objeto:

Object {2e1c5694-e6ef-e1b2-22d5-84a3807961d4: Array[3]} 2e1c5694-e6ef-e1b2-22d5-84a3807961d4: Array[3] 0: DataConnection 1: MediaConnection 2: MediaConnection length: 3 __proto__: Array[0] __proto__: Object

Eche un vistazo a cualquiera de esos objetos de conexión:

var rtcPeerConn = connectionObject.pc; // RTCPeerConnection rtcPeerConn.getStats(function callback(connStats){ var rtcStatsReports = connStats.result() // array of available status-reports // each status-report object has many status variables, such as // googCurrentDelayMs. You need to iterate over all object and check // their names to find the one status report you want rtcStatsReports[7].names() // returns all available variables for that report var googCurrentDelayMs = rtcStatsReports[7].stat(''googCurrentDelayMs'') console.log(googCurrentDelayMs) // finally - googCurrentDelayMs :-) })

Deseo obtener acceso a algunas de las variables registradas en chrome://webrtc-internals/ , pero no encontré nada en google, ni siquiera una descripción de los gráficos que puedo ver.
Estoy particularmente interesado en packetsLost , googCurrentDelayMs y googNacksSent .

por qué quiero acceder al webrtc-internals
Estoy escribiendo una aplicación google chrome que comparte una transmisión de video (p2p). Utiliza peerjs para compartir la transmisión con otros pares, que a su vez utiliza la implementación de googlertc de google debajo. Para que mi aplicación sea perfecta necesitaría saber cuándo ocurre un gran retraso. Como puedo ver la demora registrada en chrome://webrtc-internals/ Me preguntaba si podría acceder a ella a través de javascript.

Supongo que no hay API para chrome://webrtc-internals/ -menu.


Después de investigar mucho, así es como logré obtener la PC usando twilio SDK.

var rtcPeerConn =Twilio.Device.activeConnection(); rtcPeerConn.options.mediaStreamFactory.protocol.pc.getStats(function callback(report) { var rtcStatsReports = report.result(); for (var i=0; i<rtcStatsReports.length; i++) { var statNames = rtcStatsReports[i].names(); // filter the ICE stats if (statNames.indexOf("transportId") > -1) { var logs = ""; for (var j=0; j<statNames.length; j++) { var statName = statNames[j]; var statValue = rtcStatsReports[i].stat(statName); logs = logs + statName + ": " + statValue + ", "; } console.log(logs); } } });

// Calcular errorRate Packetlost / packetsent

var rtcPeerConn =Twilio.Device.activeConnection(); rtcPeerConn.options.mediaStreamFactory.protocol.pc.getStats(function callback(report) { var error, pcksent; var rtcStatsReports = report.result(); for (var i=0; i<rtcStatsReports.length; i++) { var statNames = rtcStatsReports[i].names(); // filter the ICE stats if (statNames.indexOf("packetsSent") > -1) { var logs = ""; for (var j=0; j<statNames.length; j++) { var statName = statNames[j]; var statValue = rtcStatsReports[i].stat(statName); if(statName=="packetsLost") error= statValue; if(statName =="packetsSent") pcksent = statValue; logs = logs +"n:" +statName + ": " + statValue + ", "; } console.log(error/pcksent); } } });