Pregunta

Tengo un problema en la comprobación de un error de respuesta después de enviar una notificación de inserción. Esta es mi configuración:

Desde mi servidor PHP, estoy enviando notificaciones Push. Estas notificaciones se envían en el formato mejorado, para que pueda obtener una respuesta de error del servidor de Apple. Por ejemplo:. Error # 7 "tamaño de carga útil no válido"

A mi modo de comprobar si hay errores está leyendo la respuesta del zócalo:

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

Esto funciona bien cuando hay un error real. Por mi problema es: cuando no hay ningún error, la llamada "fread" no devuelve nada y mantiene la carga siempre

.

Puede alguien ayudarme con esto? Gracias por su ayuda!

¿Fue útil?

Solución

Es necesario establecer stream_set_blocking($this->_apnsSocket, 0); a 0, que es el modo de no bloqueo, porque el éxito de Apple no devuelve nada, pero el fread está esperando los datos en modo de bloqueo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top