我跟着指示在:
如何建立一个苹果推送通知供应商服务器当我在我的MacOSX或Windows上使用并行桌面运行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
这是否有证书呢? 如果是的话我怎么能做出可能在我的主机所在的计算机上工作的证书。
您的托管服务提供商可能不允许端口2195和2196的大多数共享主机提供商的出站连接没有这些开放端口。 您可能需要获得一个VPS或者你也可以尝试UrbanAirship提供苹果通知服务一体化和是免费的,每月一定的限制。
是的,你需要一个证书。 这是在苹果文档解释。 一个陷阱,你可能需要的证书为.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-----
我发现最简单的和最便宜的解决方案是从您的托管公司申请一个专用的IP。 在蓝主机,这是一个每月$ 2.50 有了这个专用IP,他们愿意打开端口2195和2196。