クライアントのダウンロード速度に応じて、動画を低品質または高品質で表示したいと考えています。任意のJavascriptまたはC#ソリューションを使用できます。サーバーからクライアントのダウンロード速度を調べるにはどうすればよいですか?
ありがとうございました。
クライアントのダウンロード速度に応じて、動画を低品質または高品質で表示したいと考えています。任意のJavascriptまたはC#ソリューションを使用できます。サーバーからクライアントのダウンロード速度を調べるにはどうすればよいですか?
ありがとうございました。
確かな方法はありません。データをクライアントに送信する速度は測定するだけです。どのくらい速く情報を得ているかを示すためにクライアントからの入力がなければ、あまりできることはありません。
クライアントを、javascriptを使用して既知のサイズのページ内の要素をダウンロードするページにリダイレクトすることができます。次に、ダウンロードの開始時と終了時に時間を取って、要素をダウンロードするのにかかった時間を送るクライアント上のjavascriptで構築されたURLにページをリダイレクトします。
要素のサイズを知っていれば、速度を見積もり、ダウンロード速度を推測できます。
ほとんどのウェブサイトでは、ユーザーに高品質または低品質のバージョンを選択させるだけです。ほとんどのユーザーは自身が自分の帯域幅を制御することができますので、
これは悪いアイデアではなく、少なくともある(つまり、私はかなりの帯域幅を使用するP2Pアプリケーションを実行しているんだけど、何か他のものは優先順位を必要とする場合、私はそれらをオフにしてください。)
クライアントの帯域幅は、使用しているアプリケーションによって変化する可能性があります。私は利用可能な速度を知りたい。しかし、これを見つける方法がないようです。 –
ますSilverlightまたはFlashをアップロードpuginとして使用できます。これにより、アップロードされた内容、アップロードされた状態、アップロードが開始されたときのアップロード速度をクライアントが実際に制御できるようになります。
ここには、Gmailの仕組みとユーザーのインターネット速度の仕組みに関するpostがあります。いくつかのアイデアを得ることができます。
たぶん、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);
未検証のコード - しかし、このアイデアはうまくいくかもしれませんか?
あなたはGeoIPのNetspeedで自分のアドレスを検索できます。私は思った道だhttp://www.maxmind.com/app/geolocation
を。私はより良い方法を見つけることができませんでした。それはないようです! –