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}が受信されます。
この問題に取り組む方法について何かアイデアはありますか?どんな助けでも大歓迎です。