Я тестировал push-уведомление на своей локальной машине, он отлично работает. Затем я загрузил файлы на реальный сервер с тем же сертификатом (файл «.pem»), и я гарантирую, что порты 2195 и 2196 открыты.ios Push Notification не работает на сервере
Я проверил:
telnet gateway.sandbox.push.apple.com 2195
Он работает ...
[email protected] ~ # telnet gateway.sandbox.push.apple.com 2195
Trying 17.149.34.54...
Connected to gateway.sandbox.push.apple.com.
Escape character is '^]'.
Но когда я тестирую из моего PHP скрипт, он возвращает:
Предупреждение: stream_socket_client() [function.stream-socket-client]: невозможно подключиться к ssl: //gateway.sandbox.push.apple.com: 2195 (Co ть соединение тайм-аут)
Внимание: stream_socket_client() [function.stream-сокет-клиент]: не может подключиться к SSL: //feedback.sandbox.push.apple.com: 2196
Любой предложения?
Это код PHP:
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert',
"path/to/certificate");
$fp = stream_socket_client("ssl://gateway.push.apple.com:2195",
$error, $errorString, 100,
(STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT), $ctx);
Просьба показать весь код PHP ... – powtac
$ ctx = stream_context_create(); \t \t stream_context_set_option ($ ctx, 'ssl', 'local_cert', "путь/в/сертификат"); \t \t $ fp = stream_socket_client ("путь/в/сертификат", $ error, $ errorString, 100, (STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT), $ ctx); – yasserislam
Лучше добавить это на свой вопрос, просто отредактируйте его. –