Php 推送通知服务器实现

Php 推送通知服务器实现,php,push-notification,Php,Push Notification,我正在努力使工作apns php(http://code.google.com/p/apns-php/)在我的服务器上(Bluehost,具有专用IP和端口2195,用于tcp和udp传出) 我得到了这个错误: 致命错误:未捕获异常 带有消息的“APNSHPU异常” '无法连接到 'ssl://gateway.sandbox.push.apple.com:2195': (0)在 /home2/xxxxx/public_html/xxxxx/pns/apnshp/Abstract.php:352

我正在努力使工作apns php(http://code.google.com/p/apns-php/)在我的服务器上(Bluehost,具有专用IP和端口2195,用于tcp和udp传出)

我得到了这个错误:

致命错误:未捕获异常 带有消息的“APNSHPU异常” '无法连接到 'ssl://gateway.sandbox.push.apple.com:2195': (0)在 /home2/xxxxx/public_html/xxxxx/pns/apnshp/Abstract.php:352 堆栈跟踪:#0 /home2/xxxxx/public_html/xxxxx/pns/apnshp/Abstract.php(295): APNSHPP_Abstract->_connect()#1 /home2/xxxxx/public_html/xxxxx/pns/sample_push.php(41): apnshp_Abstract->connect()#2{main} 投入 /home2/xxxxx/public_html/xxxxx/pns/apnshp/Abstract.php 在线352

我已联系Bluehost支持部门,他们告诉我:

谢谢联系我们。似乎 通过服务器 ssl://gateway.sandbox.push.apple.com:2195* 拒绝接受连接 从你的帐户中提取。有办法吗 您可以将您的专用ip或 在其上接受传入连接 结束


有人能帮我解决这个问题吗?有什么想法吗?谢谢

您可能需要联系苹果公司。。听上去,苹果阻止了你的应用程序访问他们的网关。。你需要联系苹果,这样你的ip地址或web应用程序才能获得批准

我已经找到了一个解决方案,我不知道它是否是最好的,但它确实有效。在Abstract.php(该文件是apns php源代码的一部分)上,我对第343行进行了注释。现在看起来是这样的:

$streamContext = stream_context_create(array('ssl' => array(
//'verify_peer' => isset($this->_sRootCertificationAuthorityFile),
'cafile' => $this->_sRootCertificationAuthorityFile,
'local_cert' => $this->_sProviderCertificateFile
)));

我真的不知道这行的目的是什么,但我知道推送通知工作正常。我怀疑它是否也能在生产服务器上正常工作。有人知道吗?

这个问题正是我在当地发展中看到的。我假设您希望在该行位于服务器上并且证书设置正确后取消注释该行。

在本例中,我们没有完成本教程的最后一部分; (认为这是可选的)

这导致了与您完全相同的错误


在我们这样做之后,一切都按预期进行。

我也遇到了同样的问题,我的错误是为SSL客户端身份验证和根CA提供了相同的证书,下面的代码对我有效

$push = new ApnsPHP_Push(
        ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,
        'ck.pem'
    );

$push->setRootCertificationAuthority('entrust_root_certification_authority.pem');

我已经在我自己的web服务器(Windows 7上的WAMP)上测试了它,现在它也可以工作了。您也可以检查一下:这意味着您正在使用委托根证书颁发机构禁用验证对等,请仔细检查您的根CA。很可能您正在使用同一文件进行SSL客户端身份验证和根CA