iPhone APNS работает только из командной строки - PullRequest
2 голосов
/ 25 ноября 2011

Я занимаюсь разработкой приложения для iPhone с использованием служб push-уведомлений. Вчера мой PHP-скрипт работал нормально, когда я получил доступ к URL (например, www.website.com/script.php), но теперь он больше не работает.

Странная вещь в том, что когда я запускаю PHP-скрипт из терминала (например, "php script.php"), все работает нормально, и уведомление отправляется приложению.

Я заново создавал свой SSL-сертификат и .pem, поэтому я чувствую, что это не проблема, поскольку он уже работает на сервере, просто из командной строки. Я также попытался запустить exec ("php script.php") внутри скрипта PHP, но безуспешно.

Я выложу свой код ниже. Любой совет будет принята с благодарностью.

    $passphrase = 'password';
    $message = 'This is a message';

    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

    // Open a connection to the APNS server
    $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT |STREAM_CLIENT_PERSISTENT, $ctx);

    if (!$fp)
        exit("Failed to connect: $err $errstr" . PHP_EOL);

Вывод: «Не удалось подключиться: 0».

...