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 ничего не отправляет, но файл ожидает данные в режиме блокировки.