繁体   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