Сценарий PHP для службы Apple Push Notification ОБРАТНАЯ СВЯЗЬ каждый раз получает TIMEOUT,

Приветствую всех! В настоящее время я внедряю службу обратной связи для push-уведомлений Apple. Я сделал все, что нужно для продвижения, и работаю как над песочницей, так и над приложениями для распространения. Однако служба обратной связи, похоже, не работает ... Каждый раз, когда я пытаюсь использовать свою функцию ... страница хорошо ... просто время ожидания.

Я последовал этому ответу, чтобы выполнить свою функцию: Метод PHP для запроса сервера обратной связи APNs

Вот мой полный код функции:

function checkFeedbackServer($appBundle,$useDev = TRUE)
{
    $apnsPort = 2195;
    $apnsCert = keyForApp($appBundle,$useDev);

    if($useDev)
    {
        echo 'FEEDBACK in DEVELOPER MODE 
'; $apnsHost = 'feedback.sandbox.push.apple.com'; } else { echo 'FEEDBACK in DISTRIBUTION MODE
'; $apnsHost = 'feedback.push.apple.com'; } $finalPath = 'ssl://' . $apnsHost . ':' . $apnsPort; echo 'OPENING STREAM TO -> ' . $finalPath . '
'; echo 'USING CERT : ' . $apnsCert . "
"; $stream_context = stream_context_create(); stream_context_set_option($stream_context, 'ssl', 'local_cert', $apnsCert); $apns = stream_socket_client($finalPath, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $stream_context); if(!$apns) { echo "ERROR $errcode: $errstr\n"; return; } else echo 'APNS FEEDBACK CONNECTION ESTABLISHED...
'; $feedback_tokens = array(); $count = 0; echo 'error= ' . $error . '
'; echo 'errorString= ' . $errorString . '
'; if(!feof($apns)) echo 'APNS NOT FINISHED
'; else echo 'APNS FINISHED?
'; $result = fread($apns, 38); echo 'result= ' . $result; fclose($apns); }

Я заметил, что если я удалю строки:

$result = fread($apns, 38);
echo 'result= ' . $result;

Функция то работает нормально. Итак, в чокнутом состоянии я могу открыть соединение со службой обратной связи и производством, и разработчиком, но как только я пытаюсь получить какие-либо данные с сервера, мой скрипт просто истекает.

также функция keyForApp ( $ appBundle, $ useDev) - это просто простая оболочка для запроса к моей базе данных, которая получает правильный сертификат. Я гарантирую, что он работает, поскольку я также использую его при отправке сообщений на устройство.

5
задан Community 23 May 2017 в 11:52
поделиться