¿Puede alguien aclarar qué quiere el APN (Apple Push Notification) en cuanto a cómo lo consulta?Técnica de PHP para consultar el Servidor de Comentarios de APN
Los documentos dicen que comienza a enviar tan pronto como se realiza la conexión. ¿Esto significa que no hago un fread()
en él?
Aquí está mi código actual para intentar leerlo. NO puse el fread()
en un bucle ya que no sé qué respuesta indica "no más registros para leer" y no quería un bucle infinito en mi servidor.
<?php
$apnsCert = 'HOHRO-prod.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($streamContext, 'ssl', 'verify_peer', false);
$apns = stream_socket_client('ssl://feedback.push.apple.com:2196', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);
echo 'error=' . $error;
echo 'errorString=' . $errorString;
$result = fread($apns, 38);
echo 'result=' . $result;
fclose($apns);
?>
Hasta ahora todo lo que recibo es una respuesta nula. No hay errores, entonces se está conectando.
No sé si la respuesta nula significa que no hay datos, o mi fread()
es la forma incorrecta de hacerlo.
Gracias
Hoy me encontré con que fread() no funcionará porque la retroalimentación APN envía datos de la basura hasta que la retroalimentación real. Esto hace que el fread falle, porque está leyendo datos nulos/vacíos. Como gw1921 menciona a continuación, debe realizar un bucle en feof() hasta strlen (fread ($ apns, 38)). A partir de ese momento, tendrá comentarios válidos. Luego, descomprime los datos como ha sugerido Nick B a continuación. (Otro problema desagradable: la aplicación desinstalada no generará comentarios a menos que tenga otra aplicación en el dispositivo con el mismo entorno de AP. Por lo tanto, necesita 2 aplicaciones de sandbox activadas por inserción en su dispositivo para que el desinstalado complete los comentarios.) – brack
Incluso tengo un código similar y también obtengo nulo de fread. No estoy seguro de si mi código funciona realmente y APNS está enviando una respuesta NULA o simplemente falta algo. Estoy seguro de que mi conexión con APNS es exitosa. Instalé mi aplicación en unos 5-10 dispositivos y envié un par de alertas, luego desinstalé la aplicación de unos pocos y comencé a enviar las alertas nuevamente para que el servidor de comentarios de APNS nos avisara que no se entregaba en algunos dispositivos. No tengo nada más que espacio en blanco en fread() :-(Si has hecho algo diferente y lo has conseguido, por favor házmelo saber. – Anish
¿Has usado "pushutil"? Una vez que lo encuentras, es una manera más rápida para comprobar el servidor de comentarios. Es una utilidad de Mac OS X que compila y luego ejecuta desde la línea de comandos de Unix. Google Erica Sadun - está en su sitio bajo Push. –