2011-11-22 31 views
2

我們需要在我們的網站上添加一個功能,允許用戶測試他的連接速度(上傳/下載)。經過一番研究後,我發現這樣做的方式是下載/上傳文件並將文件大小除以該任務所需的時間,如http://www.codeproject.com/KB/IP/speedtest.aspx 但是,在我的情況下這是不可能的,這應該是一個Web應用程序所以出於明顯的安全原因,我無法將文件下載/上傳到用戶的機器。從我讀過的這個下載/上傳任務應該在服務器上,但是如何? 這個網站有我想到的,但在php http://www.brandonchecketts.com/open-source-speedtest。不幸的是,我沒有任何關於PHP的背景知識,這個任務非常緊迫。 我真的不需要用這樣的東西SPEEDTEST構建ASP.Net網頁來測試用戶的連接(帶寬)

感謝

回答

1

爲獲得在比特/秒的downloadspeed公式爲:

DataSize in byte * 8/(time in seconds to download - latency to the server). 

下載: 主機的BLOB數據(html文檔,圖像或其他),你知道你的服務器上的下載內容,做出一個AJAX GET請求來獲取它,並測量從下載開始到完成之間的時間。

這可以使用Javascript代碼完成,但我可能會建議您在生成有效內容時包含時間戳以計算延遲。

上傳: 朝着您填寫與特定大小的垃圾數據,計算出花來執行這個職位的時間與服務器的AJAX POST請求。事情要牢記

列表:

  • 您將無法測量比你的服務器高帶寬
  • 併發用戶數將耗盡帶寬,建立一個「限制」如果這能成爲問題
  • 難以建立精確測量帶寬的服務,the one you linked to根據Bredbandskollen我的實際速度在30Mbit/s左右時呈現5Mbit/s。

關於這個問題的其他鏈接

注:我還沒有建立任何服務這樣的,但它應該做的伎倆。

+0

+1你擊敗了我的細節,所以我刪除了我的答案。 = D –

+0

它看起來像這是要走的路,我已經建立了一些東西http://aspspider.biz/theprinceofauc/ 但我有問題張貼到服務器。你能指導我嗎?你總是可以點擊鼠標右鍵,查看頁面源代碼 – user670419

+0

看起來我已經修復了這個問題,請去檢查它是否給出了合理的結果 – user670419