3

我按照以下说明操作:

如何构建 Apple 推送通知提供程序服务器 当我在 MacOSX 或使用 Parallel 桌面的 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 

这和证书有关系吗?如果是这样,我如何制作可以在我的主机所在的计算机上运行的证书。

4

3 回答 3

4

您的托管服务提供商可能不允许到端口 2195 和 2196 的出站连接。大多数共享托管服务提供商没有打开这些端口。您可能需要获得一个 VPS,或者您也可以尝试 UrbanAirship,它提供 Apple 通知服务集成,并且每月有一定限制是免费的。

于 2010-02-24T07:42:54.493 回答
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-----
于 2009-09-18T14:13:08.733 回答
1

我发现最简单和最便宜的解决方案是向您的托管公司请求一个专用 IP。在 Blue Host,每月 2.50 美元。有了这个专用 IP,他们愿意开放 2195 和 2196 端口。

于 2010-07-29T17:39:15.413 回答