【发布时间】:2015-07-22 11:32:57
【问题描述】:
我在谷歌云上托管了我的 PHP 代码。
我想向 ios 应用发送推送通知。我已启用端口 2195 和 2196。
发送推送通知时出现以下错误:
警告:stream_socket_client(): SSL: Connection reset by peer
警告:stream_socket_client():无法启用加密
警告:stream_socket_client():无法连接到 ssl://gateway.push.apple.com:2195(未知错误)
我对 Google Cloud 不太熟悉。我应该怎么做才能让它工作?
代码如下:
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', PEM_FILE_PATH . 'apns-dev.pem');
$fp = stream_socket_client("ssl://gateway.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
$data['msgs'] = "Failed to connect $err $errstr \n";
} else {
$payload = json_encode($body);
$msg = chr(0) . pack("n", 32) . pack("H*", str_replace(" ", "", $deviceToken)) . pack("n", strlen($payload)) . $payload;
$result = fwrite($fp, $msg);
if (!$result) {
$data['msgs'] = 'Message not delivered'; //. PHP_EOL;
} else {
$data['msgs'] = 'Success'; //. PHP_EOL;
}
fclose($fp);
}
return $data;
【问题讨论】:
-
什么云? Compute Engine 还是 App Engine?
-
这是计算引擎
-
您是在打开连接、发送消息、关闭连接,然后再循环执行一遍吗?
-
@SantoshJagtap:是的。我也尝试过单个通知,但同样的错误。
-
您在使用证书吗?当我使用坏证书时,这发生在我身上。检查您的代码和证书,以确保一切正常。先用沙盒 APNS 测试服务器测试一下
标签: php ios push-notification apple-push-notifications google-cloud-platform