3

プッシュ通知を送信するための PHP コードがプロキシで動作していることを確認する必要があります。Charles をインストールして、すべての Web トラフィックをプロキシ (127.0.0.1:8888) 経由で監視できるようになりました。

ここで、スクリプトがプッシュ通知に対して正しく機能しているかどうかを確認したいと思います。私は持っている :

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);

プッシュ通知を受け取っていますが、Charles で何が起こっているのかわかりません。だから私のスクリプトはプロキシを使用していません...

なぜなのかご存知ですか ?

4

1 に答える 1

2

これは、 orの代わりにラッパーを使用したところまで、httpオプションを含むコンテキストをstream_socket_client()- and more に渡したためです。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 に対して提供されるきめ細かい制御が必要になる可能性は低いからです。

于 2013-01-04T09:27:35.747 に答える