我一直在使用Push Notification Services开发iPhone应用程序。昨天我的PHP脚本在我访问url时运行正常(例如www.website.com/script.php),但现在它已经不再有效了。
奇怪的是,当我从终端运行PHP脚本(例如“php script.php”)时,一切正常,通知也会发送到应用程序。
我已经多次重新创建了我的SSL证书和.pem,所以我觉得这不是问题,因为它已经在服务器上工作,只是从命令行。我也尝试在PHP脚本中运行exec(“php script.php”),但没有运气。
我将在下面发布我的代码。任何建议都将不胜感激。
$passphrase = 'password';
$message = 'This is a message';
$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);
输出为:“连接失败:0”。