构建ASP.Net网页以测试用户';s连接(带宽)

构建ASP.Net网页以测试用户';s连接(带宽),asp.net,bandwidth,Asp.net,Bandwidth,我们需要在我们的网站上添加一个功能,允许用户测试他的连接速度(上传/下载)。经过一些研究,我发现这样做的方式是下载/上传一个文件,并将文件大小除以该任务所需的时间,如下所示 然而,在我的情况下,这是不可能的,这应该是一个web应用程序,所以出于明显的安全原因,我不能从用户的机器上下载/上传文件。据我所知,下载/上传任务应该在服务器上,但如何? 这个网站完全符合我的想法,但在php。不幸的是,我对php没有任何背景知识,这项任务非常紧迫。 我真的不需要使用像speedtest这样的东西 感谢以位/

我们需要在我们的网站上添加一个功能,允许用户测试他的连接速度(上传/下载)。经过一些研究,我发现这样做的方式是下载/上传一个文件,并将文件大小除以该任务所需的时间,如下所示 然而,在我的情况下,这是不可能的,这应该是一个web应用程序,所以出于明显的安全原因,我不能从用户的机器上下载/上传文件。据我所知,下载/上传任务应该在服务器上,但如何? 这个网站完全符合我的想法,但在php。不幸的是,我对php没有任何背景知识,这项任务非常紧迫。 我真的不需要使用像speedtest这样的东西


感谢以位/秒为单位获取下载速度的公式:

DataSize in byte * 8 / (time in seconds to download - latency to the server).
下载: 托管一个blob数据(html文档、图像或其他任何内容),您知道服务器上的下载大小,发出ajaxget请求获取它,并测量从开始下载到完成下载之间的时间量

这只能通过Javascript代码实现,但我可能建议您在生成有效负载时包含一个时间戳,以便计算延迟

上传: 向服务器发出AJAX POST请求,在服务器中填充特定大小的垃圾数据,计算执行此POST所需的时间

要记住的事项列表:

DataSize in byte * 8 / (time in seconds to download - latency to the server).
  • 您将无法测量比服务器更高的带宽
  • 并发用户将耗尽带宽,如果出现问题,则建立“限制”
  • 很难建立一个精确测量带宽的服务,当我的实际速度约为30Mbit/s时,它会向我提供5Mbit/s
有关该主题的其他链接


注意:我还没有构建任何这样的服务,但它应该可以做到这一点。

看起来这是一种方法,我已经在那里构建了一些东西,但是我在发布到服务器时遇到了问题。你能指导我吗。您可以随时右键单击,查看页面的来源。看起来我已经解决了这个问题,请检查它是否给出了合理的结果