1

iPhoneアプリが接続するPHPで書かれたWebサービスがあります。アプリがサービスを呼び出すと、一連の通知メッセージが Apple の APNs サーバーに送信されるため、アプリの他のユーザーにプッシュ通知を送信できます。

このプロセスには時間がかかる場合があり、アプリが応答を受け取るまでに長時間待たなければなりません。応答は、APNs サーバーに送信される通知メッセージの結果とは完全に無関係です。

したがって、APNs へのメッセージが送信されたかどうかに関係なく、Web サービスがアプリに応答を返すようにしたいと考えています。

私の現在のコード:

<?
    <...>
    echo $chatID; // This has to be printed immediately
    include('apns.php'); // Just invoke this, dont wait for response! 
?>

どうすればいいですか?

4

2 に答える 2

3

接続を閉じてから、次のように処理を続行する必要があります。

set_time_limit(0); 
ignore_user_abort(true);  

//start the output buffer
ob_start();

//process what needs to be returned to browser
echo $chatID;

//tell the browser not to expect any more content and close the connection
header("Content-Length: " . ob_get_length());
header("Connection: close");
ob_end_flush(); 
ob_flush(); 
flush(); 
//continue processing
于 2012-07-26T11:11:25.647 に答える
2

コールflush();; これにより、以前に印刷されたデータがクライアントにすぐに送信されます。出力バッファリングを使用している場合は、ob_flush();最初に呼び出す必要があります。

于 2012-07-26T11:04:52.987 に答える