Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fippo/rtcstats
https://github.com/fippo/rtcstats
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/fippo/rtcstats
- Owner: fippo
- License: mit
- Created: 2015-12-17T09:17:38.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-12-05T08:58:57.000Z (about 1 year ago)
- Last Synced: 2024-12-24T09:06:54.185Z (12 days ago)
- Language: JavaScript
- Size: 168 KB
- Stars: 129
- Watchers: 29
- Forks: 41
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 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.
```html```
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:```javascript
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"}
]
})
```If that integration is not possible there is a fallback integration which allows
sending per-client information about the user id and conference id. This
can be used by calling
```
trace('identity', null, {user: 'your client identifier',
conference:'identifier for the conference, e.g. room name'});
```### Requiring as module
#### build
in the root directory of the project:
```bash
$npm i
...
$npm run dist
```this will create the output in `./out/`
#### require
```javascript
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](https://fippo.github.io/webrtc-dump-importer/rtcstats)