概述
苹果推送刚刚升级不久, 我在网上查到的所有资料, 都是老版本的, 支持Json Web Token, p8文件的没找到
只要确认php curl支持http2就可以直接使用这个库了, 否则会遇到各种莫名其妙的错误
我遇到的坑主要是php环境方面的, , 以Cent OS为例
确认php直接运行
php --ri curl
如果看到
HTTP2 => Yes
恭喜.
如果没有找到HTTP2,或者是NO,那么都是不支持http2的,那么接下来就只有重新安装php,或者是curl这个扩展了
确认你系统的curl是否支持http2的发送请求,因为php要用到,我用的Cent OS 6的系统默认curl是不支持发送http2请求的
运行curl --version查看
如果看到了有类似这样的nghttp2/1.24.0,应该就是支持http2了
也可以
curl -I https://nghttp2.org , 注意是参数是大写的i
看看是否支持http2
如果不支持http2,请升级curl后重新安装php
如果系统的curl支持http2, 而php不支持,那就是看你的系统中是否安装了多个curl,而php安装curl指定的路径是不支持的那一个
if (!defined('CURL_HTTP_VERSION_2_0')) {
define('CURL_HTTP_VERSION_2_0', 3);//好像php 7.0.7才定义了这个
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
代码中加入以上, 这样就可以发送http2的请求了
最后的大坑
如果所有配置都正确,curl -I https://nghttp2.org时也是显示的http2的请求,但是curl -I https://api.development.push.apple.com还是显示为http 1.x请求时,请升级你的openssl, 我升级成libressl最版本之后就正常了,最后再重新安装你的php环境.安装时最好指定你的curl和openssl的安装路径
最后
以上就是洁净大侠为你收集整理的php curl http2,用php做ios http2推送服务遇到的坑的全部内容,希望文章能够帮你解决php curl http2,用php做ios http2推送服务遇到的坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复