gpt4 book ai didi

php - PHP上的推送通知错误(iOS上的简单推送通知)

转载 作者:行者123 更新时间:2023-12-01 17:09:16 24 4
gpt4 key购买 nike

我正在开发用于推送通知的iPhone应用程序,并且在本地主机上运行php文件时出现错误。我已经正确创建了证书,.pem文件。然后,当我在本地主机上测试该应用程序时,将显示警告。

警告:stream_socket_client()[function.stream-socket-client]:无法在/ Applications / XAMPP / xamppfiles / htdocs / PushNotificationProject / simplepush中设置私钥文件`/Applications/XAMPP/xamppfiles/htdocs/PushNotificationProject/ck.pem' .php行21
警告:stream_socket_client()[function.stream-socket-client]:无法在第21行的/Applications/XAMPP/xamppfiles/htdocs/PushNotificationProject/simplepush.php中创建SSL句柄
警告:stream_socket_client()[function.stream-socket-client]:无法在第21行的/Applications/XAMPP/xamppfiles/htdocs/PushNotificationProject/simplepush.php中启用加密
警告:stream_socket_client()[function.stream-socket-client]:无法连接到/ Applications / XAMPP / xamppfiles / htdocs / PushNotificationProject /中的ssl://gateway.sandbox.push.apple.com:2195(未知错误)第21行的simplepush.php
连接失败:0

我得到这个错误。此错误的原因可能是什么?
这是我的php代码。

<?php
// Put your device token here (without spaces):
$deviceToken = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// Put your private key's passphrase here:
$passphrase = 'xxxxxxxxxx';

// Put your alert message here:
$message = 'My first push notification!';
////////////////////////////////////////////////////////////////////////////////

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

// Open a connection to the APNS server
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

if (!$fp) {
exit("Failed to connect: $err $errstr" . PHP_EOL);
}

echo 'Connected to APNS' . PHP_EOL;

// Create the payload body
$body['aps'] = array(
'alert' => $message,
'sound' => 'default',
'badge' => '1'
);

// Encode the payload as JSON
$payload = json_encode($body);

// Build the binary notification
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

// Send it to the server
$result = fwrite($fp, $msg, strlen($msg));

if (!$result) {
echo 'Message not delivered' . PHP_EOL;
} else {
echo 'Message successfully delivered' . PHP_EOL;
}

// Close the connection to the server
fclose($fp);
?>
请帮助我修复此错误。

最佳答案

我已经看到您没有使用任何SSL证书。首先为您的应用创建SSL证书。

关于php - PHP上的推送通知错误(iOS上的简单推送通知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com