推送通知(iPhone)给出"111 Connection refused"

els*_*ooo 5 php iphone ssl push

当我尝试发送推送通知时,我收到此错误:"连接被拒绝",但我不知道为什么...我已将我的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);
?>
Run Code Online (Sandbox Code Playgroud)

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

msh*_*hau 7

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


Ben*_*man 2

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

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