【问题标题】:How can I find out the download speed of the client from server?如何从服务器上找出客户端的下载速度?
【发布时间】:2010-10-15 06:50:46
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: c# javascript download-speed


    【解决方案1】:

    没有任何方法可以确定。您只能衡量向客户端发送数据的速度。如果没有来自客户端的任何类型的输入来表明它获取信息的速度,您将无能为力。

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

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

    【讨论】:

    • 我就是这么想的。我找不到更好的方法。好像没有!
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我知道客户的带宽可能会因他/她使用的应用程序而改变。我想知道可用的速度。但似乎没有办法找出来。
      【解决方案4】:

      您可以使用 Silverlight 或 Flash 作为上传插件。这将使您能够真正控制客户端上传的内容、状态以及上传开始时的上传速度。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          也许,在 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);
          

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-07-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-09-01
              • 2021-04-27
              • 2022-01-13
              • 2020-01-22
              相关资源
              最近更新 更多