端口2195打开但无法访问APNS服务器

时间:2013-03-23 13:56:00

标签: php ssl ssl-certificate apple-push-notifications apns-php

问题: 我无法访问APNS服务器。我收到110连接超时错误。

我的情况:

  1. 我联系了我的主人(hostmonster)。他们说我的港口2195,2196已经开放。
  2. 我的证书和密码短语没有问题,因为我已经在我的本地Mac上测试了它。
  3. 我使用一个非常简单的PHP来测试。这是我的代码:

    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', 'apn.pem');
    stream_context_set_option($ctx, 'ssl', 'passphrase', 'aaa');
    $fp = stream_socket_client("ssl://gateway.sandbox.push.apple.com:2195", $err,     
          $errstr,60,STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT,$ctx);
    
    if ($fp)
        echo ('aa');
    else
        echo ($err.$errstr);
    

1 个答案:

答案 0 :(得分:10)

我有同样的问题,但是使用Bluehost。就我而言,事实证明Bluehost防火墙没有正确打开。 Bluehost的第一线聊天支持称端口2195& 2196是开放的,问题不在他们身上。为了证明问题在他们一边,我让他们从Bluehost服务器运行以下telnet命令:

telnet gateway.push.apple.com 2195

Trying 17.149.36.246...
Trying 17.149.35.166...
Trying 17.149.35.170...
Trying 17.149.35.177...
... Connection timed out

输出应为:

telnet gateway.push.apple.com 2195

Trying 17.149.36.230...
Connected to gateway.push.apple.com.
Escape character is '^]'.

然后我使用此信息向Bluehost提交了支持票。他们通过正确打开防火墙,在6个小时内解决了这个问题。