我必须确认我的用于发送推送通知的 PHP 代码正在与代理一起使用。我安装了 Charles,并且可以通过代理 (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 发生了什么。所以我的脚本没有使用代理...
你知道为什么吗 ?
这是因为您传递了一个上下文http
选项stream_socket_client()
- 更重要的是你使用了ssl://
包装器而不是http://
or https://
.
The stream_socket_*()
函数不知道您正在实现 HTTP,因此它们不使用http
上下文选项 - 为了使其工作,您需要执行以下操作:
$fp = fopen('https://gateway.sandbox.push.apple.com:2195/path/to/file', 'r', false, $ctx);
无论如何,这可能是一个更好的主意,因为您不太可能需要手动实现 HTTP 为 Apple API 提供的精细控制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)