使用PHP的APNS无法启用加密错误

The*_*bby 5 php ssl google-app-engine apple-push-notifications ios

我正在尝试使用以下PHP代码发送iOS推送通知.

我不确定它是语法错误还是逻辑错误.我已经尝试重新生成.pem,检查端口和检查文件权限.一切都很好.我不太确定是什么导致了这个.我在App Engine上运行它.这可能是原因,但我不确定.我知道其他人已成功完成此任何帮助将不胜感激.

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

$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

if (!$fp)
{
  //Handle Error
}

$body['aps'] = array(
  'alert' => $data["message"],
  'sound' => 'default'
);
$body["postID"] = $data["postID"];
$body["groupID"] = $data["groupID"];
$body["type"] = $data["type"];

$payload = json_encode($body);

foreach ($registrationIds as $registrationID)
{
  $msg = chr(0) . pack('n', 32) . pack('H*', $registrationID) . pack('n', strlen($payload)) . $payload;
  $result = fwrite($fp, $msg, strlen($msg));
}

fclose($fp);
Run Code Online (Sandbox Code Playgroud)

我一直在收到错误:

PHP Warning:  stream_socket_client(): Failed to enable crypto
PHP Warning:  stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error)
Run Code Online (Sandbox Code Playgroud)

thi*_*sai 2

我有同样的问题,我很遗憾地说我刚刚发现 Google App Engine 不支持ssl://tls://流传输器。

您可以在此页面上找到它:https ://cloud.google.com/appengine/docs/php/runtime