簡體   English   中英

如何在客戶端和服務器之間發送和接收相同的圖像?

[英]How do you send and receive the same image between the client and the server?

我正在嘗試實施帶寬測試,看起來最常規的方法是在客戶端和服務器之間來回傳輸一個或多個圖像,看看上傳和下載時間是多少。 事實上, 這個答案已經涵蓋了獲取下載時間的想法。

但是,在這一點上,我不太確定如何使用或不使用其他答案來使流程雙向進行 即使在添加調試語句之后,我還沒有找到圖片數據存儲在其他答案代碼中的位置。 如果我嘗試從一個干凈的平板開始,我在Internet / Stack Overflow上發現的很多關於來回發送圖像的API信息幾乎沒有解釋或詳細說明,所以我無法使用它把兩者放在一起。 此外,我將有時涉及其他平台的一些實驗放在一起似乎真正限制了帶寬使用,以及根據圖像的大小不正確地縮放延遲。

使用JavaScript,您如何在客戶端和服務器之間來回傳輸相同的圖像,以便您可以准確地使用延遲和圖像的大小來測量帶寬? 如何使用相同的圖像,無需限制,並且沒有用戶的交互,這兩種方式都可以工作?

編輯

我可以嘗試發布我嘗試過的東西,但它很難有意義。 其中很多都是在Flash中。 當我開始使用JavaScript時,我開始嘗試這些方面:

$.get('http://ip address/test.php?filename=XXX&data=LONG STRING OF DATA REPRESTING THE DATA TO BE SAVED PROBABLY LESS THAN 2K IN SIZE AND ALSO YOU SHOULD ESCAPE OR ATLEAST URIENCODE IT', function(data) {
    alert('here')
   eval(data);
});

PHP文件是:

<?php
    echo "response=here";
?>

我將PHP文件用於Flash和JavaScript。 我還使用Adobe Media Server和Flash。 但是在使用Flash / PHP時,從1MB文件到32MB文件,Flash只會將延遲縮放10倍,遠不及32。它似乎也至少在與AMS配對時限制帶寬使用,甚至可能與PHP文件配對。

我即將轉換JavaScript代碼以將實際圖像傳遞到PHP文件...但我無法達到它。 即使我做的事情如下:

for (var s in download) {
    alert(s + ": " + download[s]);
}

download是在JavaScript中下載圖像的對象(請參閱鏈接的代碼答案),我沒有看到任何有用的東西。 download.children.length為0,依此類推。 我也不願意相信結果不會限制帶寬使用,就像Flash實驗那樣,沒有進一步的確認; 也許圖像必須使用一種類型的API調用或其他類型來傳遞,以使其真正正常工作?

從本質上講,我真的在尋找好的API信息。 我看到的其他東西並不精確,無法連接點。

2ND編輯

我遇到的一個陷阱是使用POST來下載圖像。 我在使IIS 7允許POST下載具有 “異常”二進制字符的任意文件類型(即jpgs) 允許它們大小超過2MB時遇到了很多困難。

為什么不使用$ .post發送一些文本。 例如:生成一些大文本:

var someText = '0123456789';
for (var i = 0; i <= 10000; i++)
{
    someText += someText;
}

然后將其發布到服務器:

var start = new Date();
$.post('yourUrl', {data:someText}, function(){
    var end = new Date();
    //this will show the bytes per second upload bandwidth
    alert(someText.length / ((end - start)/1000));
});

為了確保結果是准確的,你可以運行它,例如,10次並獲得平均值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM