Невозможно подключиться к apns из php - PullRequest
2 голосов
/ 27 сентября 2011

У меня проблемы с подключением к apns apple с моей производственной машины, это хостинг vps.

  1. Я попросил техническую поддержку хостинга, и они сказали, что они не блокируют исходящие соединения на любом порту.и что журналы ничего не показывают об этой проблеме, и они не имеют ни малейшего представления, что может вызвать это, так что никакой помощи нет.
  2. Это работает на моем локальном компьютере разработчика, и iPhone получает уведомления.
  3. extension=php_openssl.dll включено в файле php.ini на обеих машинах.
  4. на обеих машинах 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 я могуне решить.

Любая помощь будет оценена:)

...