異なる地理的位置にある 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 になります