Push-уведомление iOS не работает при использовании планировщика crontab

Я реализовал пример службы push-уведомлений для моего приложения.

Прямо сейчас я тестирую в среде песочницы.

Я получаю уведомления, когда вручную вызываю PHP-скрипт для отправки уведомлений через APN.

Когда я пишу планировщик, используя crontab для автоматизации доставки уведомлений, я не получаю уведомления. Я получаю сообщение об ошибке:

PHP Warning:  stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure in /Users/aspire/Desktop/SimplePush/simplepush.php on line 21
PHP Warning:  stream_socket_client(): Failed to enable crypto in /Users/aspire/Desktop/SimplePush/simplepush.php on line 21
PHP Warning:  stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /Users/aspire/Desktop/SimplePush/simplepush.php on line 21
Failed to connect: 0 

Может кто-нибудь объяснить, в чем может быть проблема?

2 ответа

Решение

Эта проблема была исправлена. Настоящая проблема была в PHP-скрипте, который я использовал.

Ранее в stream_context_set_option I I не указывался полный путь к файлу ck.pem. После указания полного пути не было ошибок. Ниже приведен код, который я использую прямо сейчас.

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', '/Users/Development/Dev/ck.pem');

Некоторые другие, кто имел эту проблему и их обсуждения

Apple Forum Вопрос 1

Apple Forum Вопрос 2

Попробуй этот код

    $apnsCert = $_SERVER['DOCUMENT_ROOT'].'/..../..../ck.pem';
    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert',$apnsCert);
    stream_context_set_option($ctx, 'ssl', 'cafile', 'entrust_2048_ca.cer');
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195',$err,$errstr,60,STREAM_CLIENT_CONNECT,$ctx);
Другие вопросы по тегам