No description or website provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.eslintrc use prototypes instead of overloading instance methods Apr 16, 2018
.gitignore
.travis.yml
LICENSE update LICENSE Oct 20, 2016
README.md
nonmodule.js
obfuscator.js
package.json
rtcstats.js
trace-ws.js

README.md

rtcstats.js

Low-level logging on peerconnection API calls and periodic getStats calls for analytics/debugging purposes

Integration

Just one simple step: include rtcstats.js before any of your webrtc javascript.

<script src='/path/to/rtcstats.js'></script>

It will transparently modify the RTCPeerConnection objects and start sending data. If you need things like a client or conference identifier to be sent along, the recommended way is to use the legacy peerconnection constraints when constructing your RTCPeerConnection like this:

var pc = new RTCPeerConnection(yourConfiguration, {
  optional: [
    {rtcStatsClientId: "your client identifier"},
    {rtcStatsPeerId: "identifier for the current peer"},
    {rtcStatsConferenceId: "identifier for the conference, e.g. room name"}
  ]
})

Requiring as module

build

in the root directory of the project:

$npm i
...
$npm run dist

this will create the output in ./out/

require

const trace = require("rtcstats/trace-ws")("wss://rtcstats.appear.in"); // url-to-your-websocket-server
require("rtcstats")(
   trace,
   1000, // interval at which getStats will be polled.
   ['', 'webkit', 'moz'] // RTCPeerConnection prefixes to wrap.
);

When using ontop of adapter it is typically not necessary (and potentially harmful) to shim the webkit and moz prefixes in addition to the unprefixed version.

Importing the dumps

The dumps generated can be imported and visualized using this tool