archive
This commit is contained in:
36
comms/webRTC-over-websockets/js/bandwidth.js
Normal file
36
comms/webRTC-over-websockets/js/bandwidth.js
Normal file
@@ -0,0 +1,36 @@
|
||||
//http://stackoverflow.com/questions/4583395/calculate-speed-using-javascript
|
||||
/*
|
||||
this is only download estimation, obviously, in peer2peer default deployment, you will
|
||||
have full mesh, n*times both upstream and donwstream stream comming to you (which is bad,
|
||||
but unless you have a server in between this is what it is). Remark: simetrical upstream/downstream
|
||||
is not common in DSL deplyoment, where downstream bandwith is much higher.
|
||||
*/
|
||||
var BANDWITDH = (function(){
|
||||
var imageAddr;
|
||||
var size;
|
||||
var startTime, endTime;
|
||||
var downloadSize;
|
||||
var download = new Image();
|
||||
|
||||
return {
|
||||
/*
|
||||
don't forget to change the address every time you make a request to avoid browser caching.
|
||||
For a demo, I will be using the same as in the stackoverflow example
|
||||
*/
|
||||
init: function(callback, address, size){
|
||||
imageAddr = address !== undefined ? address : "http://www.tranquilmusic.ca/images/cats/Cat2.JPG" + "?n=" + Math.random();
|
||||
downloadSize = size !== undefined ? size : 5616998;
|
||||
startTime = (new Date()).getTime();
|
||||
download.src = imageAddr;
|
||||
download.onload = function() {
|
||||
endTime = (new Date()).getTime();
|
||||
var duration = (endTime - startTime) / 1000;
|
||||
var bitsLoaded = downloadSize * 8;
|
||||
var speedBps = (bitsLoaded / duration).toFixed(2);
|
||||
var speedKbps = (speedBps / 1024).toFixed(2);
|
||||
var speedMbps = (speedKbps / 1024).toFixed(2);
|
||||
callback(speedMbps);
|
||||
}
|
||||
},
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user