2

我已经构建了一个经常通过 NSURLConnection 连接到我的服务器的 iOS 应用程序。这是一个非常标准的设置;应用程序向服务器发送各种信息,服务器根据收到的信息返回 JSON 响应。

在我构建的一个新功能中 - 它需要一个特定的 PHP 脚本来进行大量处理,而不是在服务器完成后给应用程序一个响应,我想在它开始处理之前给应用程序一个响应 -这是我无法实现的。

PHP的基本概要如下:

<?
echo "Output buffering is " . ini_get('output_buffering') . "<br />";
// NM testing ob buffer technique

ob_start(); 

$profiles_ar = array(
    "reach" => 10,
);

$return_ar = array(
    "success"   => $profiles_ar['reach'],
);

echo json_encode($return_ar);                   // Note the buffer must be "filled" with 4096 characters (bytes?) for ob_flush() to work before sleep() occurs.

for($i = 0; $i < 5000; $i++)
{
    echo " ";
    ob_flush(); flush;
}

echo $buffer;

ob_flush();

flush();

ob_end_flush();

for($i=0;$i < $profiles_ar['reach']; $i++)
{
   sleep(1);
}

echo "finshed: ".$i;

ob_flush();

flush();

ob_end_flush();

?>

上面的脚本在浏览器中运行得非常好——立即输出 {"success":10}。但是,如果从我的 iOS 应用程序访问此脚本,则在 for 循环完成后会收到 {"success":10}。

关于如何解决这个问题的任何想法?任何帮助将非常感激。

4

0 回答 0