我开始创建一些基于this的代码,用于从PHP发送推送通知。
然而,现在我已经了解到有一个新的API,它利用HTTP/2并在响应中提供反馈,我正在尝试弄清楚我需要做些什么才能获得反馈。
我还找不到任何教程或示例代码来指导我(我猜是因为它太新了)。
是否可以通过新的提供商应用程序接口使用连接到API的stream_socket_client()
方法?我如何获得反馈?我现在从fwrite($fp, $msg, strlen($msg))
得到的只是一个数字。无论出于何种目的,您都可以认为我的代码与the SO question I based my code on中的代码是一样的
谢谢!
发布于 2016-01-23 05:03:55
我想向tiempor3al answer添加一些信息。
1) curl必须使用openssl版本的>=1.0.2编译,才能完全支持http/2。我收到"?@@?HTTP/2客户端前缀字符串丢失或损坏...“当我使用CentOS股票openssl-1.0.1e编译它时出错。
2)如果您的php模块mod_curl.so编译时没有CURL_HTTP_VERSION_2_0常量,可以用整数3替换:
curl_setopt($ch, CURLOPT_HTTP_VERSION, 3);
发布于 2016-04-10 17:56:28
我可以使用php CURL成功地通过HTTP2发送推送,并在响应正文中直接读取反馈(这里我写了一个简短的教程来说明如何做到这一点:Sending Push Notification with HTTP2 (and PHP))。我想你可以从套接字中检查响应体的读数(我不太记得php函数了,可能是"fgets")。
发布于 2016-03-10 07:13:28
按照本指南[http://cloudfields.net/blog/ios-push-notifications-encryption/][1]生成并合并您的证书和私钥。将sslcert和pkey合并并使用相同的文件名后,只需尝试下面的curl命令即可。
curl -X POST -H 'apns-topic: com.mycompany.ios.BadassApp' -d '{"aps":{"content-available":1,"alert":"hi","sound":"default"}}' --cert apns_cert.pem:yourCertPassword --http2 'https://api.development.push.apple.com:443/3/device/b8de1sf067effefc398d792205146fc67dn0e96b0ff21ds81cabe384bbe71353'
https://stackoverflow.com/questions/34684099
复制相似问题