【问题标题】:Push notifications (iPhone) give "111 Connection refused"推送通知 (iPhone) 给出“111 连接被拒绝”
【发布时间】:2010-11-29 12:10:48
【问题描述】:

当我尝试发送推送通知时,我收到此错误:“连接被拒绝”,但我不知道为什么...我已将我的 apns-dev.pem 上传到同一目录以及根目录中-目录,但这也不起作用。

<?php
$payload['aps'] = array('alert' => 'This is the alert text', 'badge' => 1, 'sound' => 'default');
$payload = json_encode($payload);
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';
$apnsPass = 'secret';

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($streamContext, 'ssl', 'passphrase', $apnsPass);

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

if (!$apns) {
    echo "Error: $errorString ($error)";
}

// Do this for each
$deviceToken = '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000';
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
// End do

socket_close($apns);
fclose($apns);
?>

有谁知道我做错了什么?当我删除密码并且不发送它时,它也不起作用......

【问题讨论】:

    标签: php iphone ssl push


    【解决方案1】:

    确保输出端口 2195 已打开。这将在您的防火墙配置中。

    【讨论】:

    • 是的,这确实是问题所在。感谢您的帮助。 :)
    【解决方案2】:

    我知道通过添加以下内容修复了该错误:STREAM_CLIENT_ASYNC_CONNECT|STREAM_CLIENT_CONNECT

    知道我没有收到任何错误,但我没有收到任何通知。我认为 Dev-token 无效知道,所以,这就是它的样子

    数字 数字 数字 数字 数字 数字 数字 数字 数字。

    删除了这一行中的空格: $apnsMessage = chr(0) 。 chr(0) 。 chr(32) 。 pack('H*', str_replace(' ', '', $deviceToken)) 。 chr(0) 。 chr(strlen($payload))。 $有效载荷;

    编辑:我发现了问题: 我的服务器拒绝传出端口,刚刚发送了一封邮件,希望他们能够激活它...

    【讨论】:

      【解决方案3】:

      除非您的 .pem 文件需要密码,否则您不需要密码。连接需要打开对等验证(选项 verify_peer)。此外,请确保 $apnsCert 是证书的有效路径,您可以使用绝对路径作为完整性检查。

      最后,这不应该影响您的连接能力,但您的设备令牌必须是有效的。

      【讨论】:

      • 真的谢谢,我去看看这是否可行。您是指绝对路径的 ftp 路径 (/public-html/directory/file.pem) 还是 (server.com/directory/file.pem)?我在发送任何数据之前收到此错误,所以它不是设备令牌,我认为......谢谢:D!
      • 它不起作用:(...,下面是我防止该错误的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-10
      • 2019-12-13
      • 2020-11-22
      • 2014-09-14
      相关资源
      最近更新 更多