我按照以下说明操作:
How To Build An Apple Push Notification Provider Server 当我在MacOSX或Windows上使用Parallel桌面运行php脚本时,脚本可以运行。但是只要我在托管上运行它,我就会收到消息:
Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Connection timed out) in provider.php on line 23
Failed to connect 110 Connection timed out
这与证书有关吗?如果是这样,我如何制作可以在托管所在的计算机上运行的证书。
答案 0 :(得分:4)
您的托管服务提供商可能不允许到端口2195和2196的出站连接。大多数共享托管服务提供商都没有打开这些端口。您可能需要获得VPS,或者您也可以尝试使用提供Apple Notification Service集成的UrbanAirship,并且每月可以免费获得一定的限制。
答案 1 :(得分:1)
是的,你需要证书。这在Apple文档中有解释。一个问题是,您可能需要将证书转换为.pem格式。 .pem证书需要包含证书和RSA私钥。
这是一个很好的网站:http://www.macoscoders.com/2009/05/17/iphone-apple-push-notification-service-apns/
我的pem看起来像:
Bag Attributes
friendlyName: Apple Development Push Services: <my data>
localKeyID: <my local key in hexascii>
subject=/UID=com.my.push.sandbox1/CN=Apple Development Push Services: <my data>/C=US
issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority
-----BEGIN CERTIFICATE-----
<my certificate data omitted>
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
<my key data omitted>
-----END RSA PRIVATE KEY-----
答案 2 :(得分:1)
我发现最简单,最便宜的解决方案是向您的托管公司申请专用IP。在Blue Host,每月2.50美元。有了这个专用IP,他们愿意打开2195和2196端口。