如何从服务器中找出客户端的下载速度?

时间:2009-03-24 18:33:34

标签: c# javascript download-speed

根据客户端的下载速度,我想以低质量或高质量显示视频。任何Javascript或C#解决方案都是可以接受的。

感谢。

7 个答案:

答案 0 :(得分:2)

没有任何方法可以肯定。您只能测量向客户端发送数据的速度。如果没有来自客户端的任何输入来指示获取信息的速度有多快,那么您无能为力。

您可以将客户端重定向到使用javascript下载页面中已知大小的元素的页面。然后,在下载的开始和结束时花时间,并将页面重定向到通过客户端上的javascript构建的URL,该URL向您发送下载元素所花费的时间。

鉴于您知道元素的大小,您可以估算一个速率并猜测下载速度。

答案 1 :(得分:2)

这是关于gmail如何工作以及如何找到用户的互联网速度的post。你可以得到一些想法。

答案 2 :(得分:1)

也许,在javascript中,您可以执行以下操作:

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);

未经测试的代码 - 但这个想法可能有用吗?

答案 3 :(得分:0)

大多数网站只是让用户选择高质量或低质量的版本。

答案 4 :(得分:0)

这是一个坏主意,尤其是因为大多数用户可以自己控制他们的带宽(即我正在运行使用大量带宽的P2P应用程序,但如果其他东西需要优先权,我会将其关闭。)

答案 5 :(得分:0)

您可以使用Silverlight或Flash作为上传pugin。这样,您就可以对客户端进行实际控制,了解上传内容,状态以及上传开始时的上传速度。

答案 6 :(得分:0)

您可以在GeoIP Netspeed中查找他们的地址:http://www.maxmind.com/app/geolocation