Iphone Apns php错误“;无法连接到APNS:110连接超时。”;

Iphone Apns php错误“;无法连接到APNS:110连接超时。”;,iphone,ios,ipad,apple-push-notifications,apns-php,Iphone,Ios,Ipad,Apple Push Notifications,Apns Php,在此基础上,我为php和objective c编写了apns代码 和安装证书从 用于向ios设备发送通知的沙盒和生产APN在我的服务器上运行良好。我将代码和相同的证书移动到客户端服务器,然后发送通知不起作用 我调试了所有php代码,发现它停在这行代码上 private function _connectSSLSocket($development) { $ctx = stream_context_create(); stream_context_set_option($ctx,

在此基础上,我为php和objective c编写了apns代码

和安装证书从

用于向ios设备发送通知的沙盒和生产APN在我的服务器上运行良好。我将代码和相同的证书移动到客户端服务器,然后发送通知不起作用

我调试了所有php代码,发现它停在这行代码上

private function _connectSSLSocket($development) {
    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', $this->apnsData[$development]['certificate']);
    $this->sslStreams[$development] = stream_socket_client($this->apnsData[$development]['ssl'], $error, $errorString, 100, (STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT), $ctx);
    if(!$this->sslStreams[$development]){
        $this->_triggerError("Failed to connect to APNS: {$error} {$errorString}.");
        unset($this->sslStreams[$development]);
        return false;
    }
    return $this->sslStreams[$development];
}
日志文件显示错误“无法连接到apns:110连接超时”


没有犯错误。为什么我收到并没有向ios设备发送通知的错误?有谁能指导我吗?

最后,我选择了vps而不是共享主机。
卢卡布洛的评论帮助我解决了这个问题。感谢Lucabro。

一个好的解决方案是使用firebase之类的云函数来运行实际的apns连接,并在共享主机中为您的其他后端公开API。 这就是我遇到这个问题时使用的方法

Firebase云功能非常方便、易于开发且几乎免费


我将在下周的某个时候发布我的解决方案。

您的客户端服务器可能位于防火墙后面,防火墙会阻止端口2195。代理服务器未解决的相同问题,我们发现的唯一方法是允许直接连接到apnsah。当您在共享主机tooThanks中时,会出现类似的问题,请向所有人发表评论。是的,我共享了主机。有什么解决方案吗?试着为推送通知寻找VPS或外部服务,比如或者iphone apns php不适用于共享主机,是吗sure@ReNiShAR是的,我确定。我在共享主机上的脚本也遇到了这个问题。我们告诉了主机这个问题,他们为我们启用了防火墙中的端口2195,所以这可能值得一试。