2

要将我的服务器与 APN 服务器连接,我使用以下代码。

// coonecting the apn server
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $errorNo, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

但是我连接失败,我打印了 $errorNo 和 $errorString 输出是:error: Connection timed out errorNo: 110

但我也在errorLog中收到以下警告:

无法连接到第 35 行 /home/riseupla/public_html/applications/apn/apn.php 中的 ssl://gateway.sandbox.push.apple.com:2195(连接超时)

我该怎么办?

注意:我可以通过我的 mac 项目发送推送通知(使用 push me baby 项目)。但是我的 PHP 项目无法连接。

4

3 回答 3

5

您没有说您是否从与 Mac 不同的机器上运行 php,但如果您为您的 php 站点使用托管服务,那么可能是 ISP 已阻止端口 2195(和 2196)。

尝试在运行 Mac 项目时使用的同一台机器上运行 php,看看这是否有帮助。如果是这种情况,那么您的 ISP 很可能已经阻止了这些端口,您将不得不寻找其他 ISP 或让他们打开这些端口。

克劳斯

于 2010-04-06T14:46:57.317 回答
4

你可能解决了它。

但是对于那些有兴趣了解端口是否被阻止的人:如果您可以通过 SSH 访问服务器,一个简单的方法是检查您是否可以远程登录到服务器。这样我发现我的提供商阻止了端口......

:~ telnet gateway.sandbox.push.apple.com 2195
:~ telnet gateway.sandbox.push.apple.com 2196

您应该会看到如下内容:

Trying 17.172.232.236...
Connected to gateway.sandbox.push-apple.com.akadns.net.
Escape character is '^]'.
于 2011-01-12T21:20:09.440 回答
0

可能是你服务器的IP多变,一定要修好才行!!

于 2010-05-07T17:57:48.277 回答