我已经在不同地理位置的 2 台服务器上上传了同一个文件,现在,我想计算使用 PHP 分别下载它们所需的时间。有什么解决办法吗?
例如我需要有这样的东西:
您的下载将持续大约 30 秒。从服务器#1,从服务器#2 50 秒。
您实际上是在尝试通过您正在做的事情来编写内容分发网络 (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;
}
请注意,这是每秒千字节。千位将是 (filesize*8)/secondsTaken