Ali Ersöz
Ali Ersöz

Reputation: 16086

How can I find out the download speed of the client from server?

According to the client's download speed I want to show the video's either in low or high quality. Any Javascript or C# solution is acceptable.

Thanks.

Upvotes: 4

Views: 2099

Answers (7)

gene tsai
gene tsai

Reputation: 432

Maybe, in javascript, you can do something like:

var testImg = document.createElement('img');
testImg.src="src.jpg"; // image with known size
var imageSize = 10; // for 10 k image
testImg.onload = function(){
   var downloadRateKPerSrc = imageSize/((new Date().getTime() - startTime)/1000);
};

testImg.style.display='none';
var startTime = new Date().getTime();
document.body.appendChild(testImg);

untested code - but this idea might work?

Upvotes: 1

Gerald Combs
Gerald Combs

Reputation: 1412

You could look up their address in GeoIP Netspeed: http://www.maxmind.com/app/geolocation

Upvotes: 0

Shoban
Shoban

Reputation: 23016

Here is a post about how gmail works and how it finds the internet speed of the user. You can get some ideas.

Upvotes: 2

Geo
Geo

Reputation: 1197

You could use Silverlight or Flash as upload pugin. This will enable you to have a real control on the client on what is uploaded, what the state is and what the upload speed is when the upload has been started.

Upvotes: 0

mqp
mqp

Reputation: 72015

This is a bad idea, not least because most users can control their bandwidth themselves (i.e. I'm running P2P apps that use significant bandwidth, but I turn them off if something else needs priority.)

Upvotes: 0

Chase Seibert
Chase Seibert

Reputation: 15851

Most web sites simply let the user choose a high quality or low quality version.

Upvotes: 0

casperOne
casperOne

Reputation: 74560

There isn't any way to be sure. You can only measure how fast you can send data to the client. Without any kind of input from the client to indicate how fast it is getting the information, there isn't much you can do.

You could redirect the client to a page which uses javascript to download an element in the page which is of known size. Then, take the time at the beginning and at the end of the download and redirect the page to a URL constructed through javascript on the client which sends you the time it took to download the element.

Given that you know the size of the element, you can then estimate a rate and make a guess as to the download speed.

Upvotes: 2

Related Questions