2017-07-05 6 views
15

Ich habe gesehen, folgende zum Download: zuAktivieren Benutzer eines WebRTC App WebRTC Protokolle über JavaScript

chrome://webrtc-internals 

aber ich bin auf der Suche nach einem Weg, damit Benutzer auf eine Schaltfläche klicken innerhalb des Web-App entweder download oder - vorzugsweise - POST WebRtc meldet sich an einen Endpunkt an, der in die App eingebunden wurde. Die Idee ist, dass ich nicht-technische Benutzer ermöglichen kann, technische Logs mit mir durch den Klick auf eine UI-Schaltfläche zu teilen.

Wie kann dies erreicht werden?

Hinweis: Dies sollte nicht von Chrome abhängig sein; Chrom wird auch verwendet, da die App in Electron verpackt wird.

+1

Vielleicht sollte diese Antwort helfen: [Gibt es eine API für die 'chrome: // webrtc-internals /' Variablen in JavaScript?] (Https://stackoverflow.com/a/24070353/165674) –

+1

@DheerajV. S. Danke - mit dem habe ich einen kleinen Stats Extractor gebaut. – SB2055

Antwort

0

Beim Durchlesen der js-Quelle chrome://webrtc-internals bemerkte ich, dass die Webseite eine Methode namens chrome.send() verwendet, um Nachrichten wie chrome.send('enableEventLogRecordings'); zu senden, um Protokollierungsbefehle auszuführen. Nach here:

chrome.send() ist eine private Funktion nur für interne Chrom Seiten.

so wird die Funktion Sandbox, die ihm den Zugriff macht nicht möglich

3

Dies ist, was ich am Ende mit (ersetzen Knockout mit Strich oder was auch immer):

  connectionReport.signalingState = connection.signalingState; 
      connectionReport.stats = []; 
      connection.getStats(function (stats) { 
       const reportCollection = stats.result(); 
       ko.utils.arrayForEach(reportCollection, function (innerReport) { 
        const statReport = {}; 
        statReport.id = innerReport.id; 
        statReport.type = innerReport.type; 
        const keys = innerReport.names(); 
        ko.utils.arrayForEach(keys, function (reportKey) { 
         statReport[reportKey] = innerReport.stat(reportKey); 
        }) 
        connectionReport.stats.push(statReport); 
       }); 
       connectionStats.push(connectionReport); 
      }); 

UPDATE:

Es scheint, dass dieser getStats Mechanismus bald veraltet sein wird.

3

Sie müssen ein Javascript-Äquivalent schreiben, das alle RTCPeerConnection-API-Aufrufe erfasst. rtcstats.js tut das aber sendet alle Daten an einen Server. Wenn Sie dieses Verhalten durch Speichern im Speicher ersetzen, sollten Sie gut sein.

+0

Was denkst du über die Lösung, die ich gepostet habe? Würde dies die nötigen Erkenntnisse liefern, um die meisten WebRTC-Probleme zu debuggen? – SB2055

+0

In den meisten Fällen war der API-Trace hilfreicher als das getStats-Ergebnis - siehe https://testrtc.com/webrc-api-trace/. Außerdem verwenden Sie die alten Chrom-Statistik-API, die vermieden werden sollte. –

+0

Haben Sie ein Beispiel, das zeigt, wie man diese Protokolle auf der Clientseite ablegt (oder gar wie man das überhaupt benutzt - ich sehe nicht viel dokumentiert um die Konfiguration herum)? Ich denke, das wäre für zukünftige Leser sehr hilfreich. – SB2055