У меня проблемы с подключением к apns apple с моей производственной машины, это хостинг vps.
- Я попросил техническую поддержку хостинга, и они сказали, что они не блокируют исходящие соединения на любом порту.и что журналы ничего не показывают об этой проблеме, и они не имеют ни малейшего представления, что может вызвать это, так что никакой помощи нет.
- Это работает на моем локальном компьютере разработчика, и iPhone получает уведомления.
extension=php_openssl.dll
включено в файле php.ini
на обеих машинах. - на обеих машинах
telnet
дает черный экран, а не ответ, как я видел в некоторых потоках здесь.
Код, который я использую:
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 10, STREAM_CLIENT_CONNECT, $streamContext);
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', $deviceToken) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
fclose($apns);
И ошибка, которую я получаю:
Warning: stream_socket_client(): SSL: crypto enabling timeout in test.php on line 116
Warning: stream_socket_client(): Failed to enable crypto in test.php on line 116
Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in test.php on line 116
Warning: fwrite() expects parameter 1 to be resource, boolean given in test.php on line 118
Warning: fclose() expects parameter 1 to be resource, boolean given in test.php on line 119
Последние 2 ошибки даны, так как соединение не установлено, но первые 3 я могуне решить.
Любая помощь будет оценена:)