我已经在不同地理位置的两台服务器上上传了相同的文件,现在我想计算使用 PHP 分别下载它们所需的时间。有什么解决办法吗?
例如我需要有这样的东西:
Your download will long about 30 sec. from server #1, and 50 sec from server #2.
最佳答案
您实际上是在尝试通过您正在做的事情来编写内容分发网络(CSN)。
CDN 本质上极其复杂,并使用多种策略来确定传输数据的最短路径。
实现这种方式的一个简单的服务器端方法可能是使用 IP 地址对用户进行地理定位,从而确定用户所在的国家或城市。然后,您可以将用户重定向到距离其位置最近的服务器。
如果您想计算多台服务器的时间,可以通过使用客户端从两台服务器下载一个小文件并使用传输时间来计算带宽来实现。
使用 AJAX 计算时间
我假设你正在使用jquery,但你可以使用prototypeJS等轻松地做到这一点。
var date = new Date();
var startTime = date.getMilliseconds();
//Known file size in KB
var fileSize = 100;
$.ajax({
url: "http://www.example.com"
}).done(function() {
alert(calculateBandwidth());
});
function calculateBandwidth(){
var date = new Date();
var end = date.getMilliseconds();
var secondsTaken = (end - start)/1000;
var KBps = fileSize/secondsTaken;
return KBps;
}
请注意,这是每秒千字节数。千位将为 (文件大小*8)/SecondsTaken
关于php - 如何使用 PHP 确定下载时长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030530/