使用Charles和SSL Apple推送地址
我必须确认,我的发送推送通知的PHP代码正在与代理。 我安装了Charles,我可以通过代理(127.0.0.1:8888)观看我所有的networkingstream量。
现在我想看看我的脚本是否正确的推送通知。 我有 :
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在发生什么事情。 所以我的脚本不使用代理…
你知道为什么吗 ?
这是因为你将一个带有http
选项的上下文传递给了stream_socket_client()
– 而且更多地使用了ssl://
wrapper而不是http://
或https://
。
stream_socket_*()
函数不知道你正在实现HTTP,所以他们不使用http
上下文选项 – 为了这个工作,你需要做的例如
$fp = fopen('https://gateway.sandbox.push.apple.com:2195/path/to/file', 'r', false, $ctx);
无论如何,这可能是一个更好的主意,因为不太可能需要手动实现HTTP的细粒度控制才能为您提供Apple API。