У меня возникла проблема при проверке ошибки ответа после отправки Push Notification. Это моя настройка:
С моего сервера PHP я отправляю Push-уведомления. Эти уведомления отправляются в расширенном формате, поэтому я могу получить ответ об ошибке с сервера Apple. Например: Ошибка № 7 «Недопустимый размер полезной нагрузки».
То, как я проверяю ошибки, это прочитать ответ сокета:
const ERROR_RESPONSE_SIZE = 6; $errorResponse = @fread($this->_apnsSocket, self::ERROR_RESPONSE_SIZE);
Это работает нормально, когда есть реальная ошибка. По моей проблеме: когда нет ошибки, вызов «fread» не возвращает ничего и продолжает загружаться навсегда.
Кто-нибудь может мне с этим помочь? Спасибо за вашу помощь!
Вам необходимо установить stream_set_blocking($this->_apnsSocket, 0);
до 0, который является неблокирующим режимом, потому что по успеху Apple ничего не отправляет, но fread ждет данных в режиме блокировки.