Push-уведомление iPhone - ошибка ответа

У меня проблема при проверке ошибки ответа после отправки Push-уведомления. Это моя установка:

С моего сервера PHP я отправляю Push-уведомления. Эти уведомления отправляются в расширенном формате, поэтому я могу получить ответ об ошибке с сервера Apple. Например: Ошибка № 7 "Неверный размер полезной нагрузки".

Способ проверки ошибок - это чтение ответа сокета:

const ERROR_RESPONSE_SIZE = 6;
$errorResponse = @fread($this->_apnsSocket, self::ERROR_RESPONSE_SIZE);

Это прекрасно работает, когда есть фактическая ошибка. Моя проблема в том, что когда нет ошибки, вызов "fread" ничего не возвращает и продолжает загружаться вечно.

Кто-нибудь может мне с этим помочь? Спасибо за вашу помощь!

1 ответ

Решение

Вам нужно установить stream_set_blocking($this->_apnsSocket, 0); в 0, что является неблокирующим режимом, потому что в случае успеха Apple ничего не отправляет, но файл ожидает данные в режиме блокировки.

Другие вопросы по тегам