推送通知(iPhone)给“111连接被拒绝”(Push notifications (iPhone

2019-07-18 12:03发布

当我尝试发送推送通知我得到这个错误:“连接被拒绝”,但我不知道在同一个目录...为什么我上传我的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);
?>

有谁知道我做错了吗? 当我删除了密码,不要把它它也不管用...

Answer 1:

你不想要一个密码,除非您的.pem文件需要一个。 连接要求对等认证(可选verify_peer)打开。 此外,还要确保$ apnsCert是证书的有效路径,可以使用绝对路径作为一个全面的检查。

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



Answer 2:

确保出站端口2195是open.This将是您的防火墙配置。



Answer 3:

STREAM_CLIENT_CONNECT | STREAM_CLIENT_ASYNC_CONNECT:我知道加入这个固定的错误

知道我没有得到任何错误,但我没有收到任何通知。 我认为,开发令牌无效知道,所以,这是怎么样子

数数数数数数数的数。

$ apnsMessage = CHR(0):这些空间在这条线除去。 CHR(0)。 字符(32)。 包( 'H *',str_replace函数(””, '',$ deviceToken))。 CHR(0)。 CHR(strlen的($有效载荷))。 $有效载荷;

编辑:我创办了问题:我的服务器拒绝输出端口,只需发送一个邮件,希望他们能激活它...



文章来源: Push notifications (iPhone) give “111 Connection refused”