У меня есть веб-сервис, написанный на PHP, к которому подключается приложение iPhone.Когда приложение вызывает службу, на сервер APN от Apple отправляется серия уведомлений, после чего она может отправлять push-уведомления другим пользователям приложения.
В некоторых случаях этот процесс может занимать много времени, и мое приложениеприходится долго ждать, прежде чем получить ответ.Ответ полностью не зависит от результата отправки уведомительных сообщений на сервер APN.
Поэтому я хотел бы, чтобы веб-служба отправляла ответ обратно приложению независимо от того, были ли отправлены сообщения в APN.
Я попытался использовать pcntl_fork для решения проблемы:
<?php
...
$pid = pcntl_fork();
if($pid == -1)
{
// Could not fork (send response anyway)
echo "response";
}
else if($pid)
{
// Parent process - send response to app
echo "response";
}
else
{
// Child process - send messages to APNs then die
sendMessageAPNs($token_array);
die();
}
?> // end of script
К сожалению, похоже, что родительский процесс ожидает завершения дочернего процесса, прежде чем отправлять ответ, хотя я не использую pcntl_wait в родительском процессе.Я делаю что-то не так или это нормальное поведение?Если это нормально, то есть ли другой способ решить эту проблему?
Спасибо!