Я должен подтвердить, что мой PHP-код для отправки push-уведомления работает с прокси-сервером. Я установил Чарльза, и я могу смотреть весь свой веб-трафик через прокси (127.0.0.1:8888).
Теперь я хотел бы посмотреть, правильно ли работает мой скрипт для push-уведомлений. У меня есть :
stream_context_set_option($ctx, 'http', 'proxy', 'tcp://127.0.0.1:8888'); $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err,$errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
Я получаю свое уведомление, но я не вижу, что происходит в Чарльзе. Поэтому мой скрипт не использует прокси-сервер …
Ты знаешь почему ?
Это связано с тем, что вы передали контекст с параметрами http
для stream_socket_client()
– и больше к тому, что вы использовали обертку ssl://
вместо http://
или https://
.
Функции stream_socket_*()
не знают, что вы используете HTTP, чтобы они не использовали параметры контекста http
– для этого вам нужно будет выполнить, например
$fp = fopen('https://gateway.sandbox.push.apple.com:2195/path/to/file', 'r', false, $ctx);
В любом случае это, вероятно, лучшая идея, потому что маловероятно, что вам понадобится гранулированный элемент управления, который будет выполнять вручную HTTP вручную для Apple API.