npm

Need private packages and team management tools?Check out npm Orgs. »

getstats

1.0.0 • Public • Published

getStats.js npm downloads

A tiny JavaScript library using WebRTC getStats API to return peer connection stats i.e. bandwidth usage, packets lost, local/remote ip addresses and ports, type of connection etc.

It is MIT Licenced, which means that you can use it in any commercial/non-commercial product, free of cost.

npm install getstats

To use it:

<script src="./node_modules/getstats/getStats.js"></script>

Link the library

<script src="//cdn.webrtc-experiment.com/getStats.js"></script>

First Step

// if your code is encapsulated under a method
(function() {
    RTCPeerConnection.prototype.getStats = window.getStats;
})();
 
// otherwise skip first step

Last Step

var rtcPeerConnection = new RTCPeerConnection(iceServers);
 
var repeatInterval = 2000; // 2000 ms == 2 seconds
rtcPeerConnection.getStats(function(result) {
    result.connectionType.remote.ipAddress
    result.connectionType.remote.candidateType
    result.connectionType.transport
    
    result.audio.availableBandwidth
    result.audio.packetsSent
    result.audio.packetsLost
    result.audio.rtt
    
    // to access native "results" array
    result.results.forEach(function(r) {
        console.log(r);
    });
}, repeatInterval);

result.audio

  1. availableBandwidth
  2. inputLevel
  3. packetsLost
  4. rtt
  5. packetsSent
  6. bytesSent

result.video

  1. availableBandwidth
  2. googFrameHeightInput
  3. googFrameWidthInput
  4. googCaptureQueueDelayMsPerS
  5. rtt
  6. packetsLost
  7. packetsSent
  8. googEncodeUsagePercent
  9. googCpuLimitedResolution
  10. googNacksReceived
  11. googFrameRateInput
  12. googPlisReceived
  13. googViewLimitedResolution
  14. googCaptureJitterMs
  15. googAvgEncodeMs
  16. googFrameHeightSent
  17. googFrameRateSent
  18. googBandwidthLimitedResolution
  19. googFrameWidthSent
  20. googFirsReceived
  21. bytesSent

result.connectionType

  1. local.candidateType
  2. local.ipAddress
  3. remote.candidateType
  4. remote.ipAddress
  5. transport

result.results

It is an array that is returned by browser's native PeerConnection API.

Credits

Muaz Khan:

  1. Personal Webpage: http://www.muazkhan.com
  2. Email: muazkh@gmail.com
  3. Twitter: https://twitter.com/muazkh and https://twitter.com/WebRTCWeb
  4. Google+: https://plus.google.com/+WebRTC-Experiment
  5. Facebook: https://www.facebook.com/WebRTC

License

getStats.js is released under MIT licence . Copyright (c) Muaz Khan.

install

npm i getstats

Downloadsweekly downloads

2,237

version

1.0.0

license

MIT

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability