php curl http2,用php做ios http2推送服务遇到的坑
苹果推送刚刚升级不久, 我在网上查到的所有资料, 都是老版本的, 支持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推送服务遇到的坑相关推荐
- Bark 使用指南:如何自建 iOS 消息推送服务
文章首发于个人公号:「阿拉平平」 之前我写过一个脚本,校验 SSL 证书是否过期并定时将结果以邮件的形式告知.事实上,这些消息并不是那么重要,发送邮件未免有些「重」了,将结果直接推送到自己的手机上可能 ...
- bark 自建服务器,自建iOS消息推送服务Bark
Bark 是一款纯推送提醒服务,用来给自己的 iPhone 发送自定义内容的推送,也支持http-api方式,集成方便. 如果你的数据敏感,可以在自己的主机上部署后端程序,这样所有的数据只在 你的手机 ...
- iOS远程推送原理及实现过程
该文章是我16年在公司博客上写的,除了证书注册的过程大致没有改变,像接收通知的方法都有所改变,所以将iOS 10 之后的接收通知及注册通知的方法在文章中补全,希望对正在处理远程推送的伙伴们有所帮助 一 ...
- 苹果服务器怎样推送消息,ios消息推送
之前一篇说了ios推送证书的生成.这是开发推送的基础环境.这次介绍的是怎么去开发. 来几句废话: 苹果的推送相比于安卓的推送,显得更加清晰,简明许多.首先不必考虑那么多厂商配置,其次苹果的送达率要比安 ...
- php推送手机,PHP_解析php做推送服务端实现ios消息推送,准备工作1.获取手机注册应用 - phpStudy...
解析php做推送服务端实现ios消息推送 准备工作1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken) 2.获取ck.pem文件(做手机端的给) ...
- 有无可能在非IOS系统上实现苹果为网易/腾讯邮箱做的实时推送
研究了下有无可能在Android上实现识别XAPPLEPUSHSERVICE从而做到Push Mail. 发现虽然Apple公布了push-service的源码:cmd-x-apple-push-se ...
- 客户端技术:一文带你了解iOS消息推送机制
导语 | 消息推送我们几乎每天都会用到,但你知道 iOS 中的消息推送是如何实现的吗?本文将从推送权限申请,到本地和远程消息推送,再到 App 对推送消息的处理等多个步骤,详细介绍 iOS 中消息推送 ...
- [转]iOS 远程推送(APNs)
我是搬运工.原帖:http://blog.csdn.net/lifengzhong/article/details/7737028 目录(?)[-] 一简介 二使用步骤 step1 step2 ste ...
- 细说 iOS 消息推送
APNS的推送机制 与Android上我们自己实现的推送服务不一样,Apple对设备的控制很严格.消息推送的流程必需要经过APNs: 这里 Provider 是指某个应用的Developer,当然假设 ...
最新文章
- mysql innodb commit_MySQL:Innodb 关于Handler_commit每次DML增加2的原因
- Wpf拖动按钮实现(二)
- Linq中使用Left Join 和 Right Join
- 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制
- 水抗攻击(APT攻击手段)
- 【大学生】做‘心机’大学生,深度高效挖掘有效人脉
- java语言精粹_java 成神之路 (一)
- DXUT框架剖析(8)
- mz04那智不二越机器人编程_买买买!这些炫酷的机器人已加入进博会“购物车”!...
- Python nose测试工具报ImportError: No Module named 错误
- 【NLP】之 结巴分词
- Netmeeting使用方法
- janusgraph 引入 java,从头开始学JanusGraph 0.4
- 重载和重写(覆盖)的区别
- [娱乐]帝国时代I:罗马复兴秘籍
- 减肥 低热量食物和运动卡路里
- 个人计算机操作系统支持多用户多任务,windows10是一个多用户多任务操作系统吗...
- WCH系列芯片CoreMark跑分
- python清华源的设置
- 【Linux】命令每日一个
热门文章
- Asprise OCR SDK 15.3试用版破解
- vs2008 C++创建和调用标准DLL
- ubuntu 20.04 阿里源_Ubuntu 18.04 安装CUDA 更新内核源出错解决方案
- java 父类 超类_Java超类-java.lang.object
- c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序
- php 比较2个数组,比较2个数组中的2个数组值Php
- excel获取mysql数据库数据类型_js如何读取excel数据库数据库数据类型
- c语言最佳适应算法实验报告,操作系统实验报告---主存分配与回收(最佳适应算法)...
- 说说如何使用 Ant 把文件推送到 Linux
- 物联网正在蚕食嵌入式系统市场