苹果推送刚刚升级不久, 我在网上查到的所有资料, 都是老版本的, 支持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推送服务遇到的坑相关推荐

  1. Bark 使用指南:如何自建 iOS 消息推送服务

    文章首发于个人公号:「阿拉平平」 之前我写过一个脚本,校验 SSL 证书是否过期并定时将结果以邮件的形式告知.事实上,这些消息并不是那么重要,发送邮件未免有些「重」了,将结果直接推送到自己的手机上可能 ...

  2. bark 自建服务器,自建iOS消息推送服务Bark

    Bark 是一款纯推送提醒服务,用来给自己的 iPhone 发送自定义内容的推送,也支持http-api方式,集成方便. 如果你的数据敏感,可以在自己的主机上部署后端程序,这样所有的数据只在 你的手机 ...

  3. iOS远程推送原理及实现过程

    该文章是我16年在公司博客上写的,除了证书注册的过程大致没有改变,像接收通知的方法都有所改变,所以将iOS 10 之后的接收通知及注册通知的方法在文章中补全,希望对正在处理远程推送的伙伴们有所帮助 一 ...

  4. 苹果服务器怎样推送消息,ios消息推送

    之前一篇说了ios推送证书的生成.这是开发推送的基础环境.这次介绍的是怎么去开发. 来几句废话: 苹果的推送相比于安卓的推送,显得更加清晰,简明许多.首先不必考虑那么多厂商配置,其次苹果的送达率要比安 ...

  5. php推送手机,PHP_解析php做推送服务端实现ios消息推送,准备工作1.获取手机注册应用 - phpStudy...

    解析php做推送服务端实现ios消息推送 准备工作1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken) 2.获取ck.pem文件(做手机端的给) ...

  6. 有无可能在非IOS系统上实现苹果为网易/腾讯邮箱做的实时推送

    研究了下有无可能在Android上实现识别XAPPLEPUSHSERVICE从而做到Push Mail. 发现虽然Apple公布了push-service的源码:cmd-x-apple-push-se ...

  7. 客户端技术:一文带你了解iOS消息推送机制

    导语 | 消息推送我们几乎每天都会用到,但你知道 iOS 中的消息推送是如何实现的吗?本文将从推送权限申请,到本地和远程消息推送,再到 App 对推送消息的处理等多个步骤,详细介绍 iOS 中消息推送 ...

  8. [转]iOS 远程推送(APNs)

    我是搬运工.原帖:http://blog.csdn.net/lifengzhong/article/details/7737028 目录(?)[-] 一简介 二使用步骤 step1 step2 ste ...

  9. 细说 iOS 消息推送

    APNS的推送机制 与Android上我们自己实现的推送服务不一样,Apple对设备的控制很严格.消息推送的流程必需要经过APNs: 这里 Provider 是指某个应用的Developer,当然假设 ...

最新文章

  1. mysql innodb commit_MySQL:Innodb 关于Handler_commit每次DML增加2的原因
  2. Wpf拖动按钮实现(二)
  3. Linq中使用Left Join 和 Right Join
  4. 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制
  5. 水抗攻击(APT攻击手段)
  6. 【大学生】做‘心机’大学生,深度高效挖掘有效人脉
  7. java语言精粹_java 成神之路 (一)
  8. DXUT框架剖析(8)
  9. mz04那智不二越机器人编程_买买买!这些炫酷的机器人已加入进博会“购物车”!...
  10. Python nose测试工具报ImportError: No Module named 错误
  11. 【NLP】之 结巴分词
  12. Netmeeting使用方法
  13. janusgraph 引入 java,从头开始学JanusGraph 0.4
  14. 重载和重写(覆盖)的区别
  15. [娱乐]帝国时代I:罗马复兴秘籍
  16. 减肥 低热量食物和运动卡路里
  17. 个人计算机操作系统支持多用户多任务,windows10是一个多用户多任务操作系统吗...
  18. WCH系列芯片CoreMark跑分
  19. python清华源的设置
  20. 【Linux】命令每日一个

热门文章

  1. Asprise OCR SDK 15.3试用版破解
  2. vs2008 C++创建和调用标准DLL
  3. ubuntu 20.04 阿里源_Ubuntu 18.04 安装CUDA 更新内核源出错解决方案
  4. java 父类 超类_Java超类-java.lang.object
  5. c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序
  6. php 比较2个数组,比较2个数组中的2个数组值Php
  7. excel获取mysql数据库数据类型_js如何读取excel数据库数据库数据类型
  8. c语言最佳适应算法实验报告,操作系统实验报告---主存分配与回收(最佳适应算法)...
  9. 说说如何使用 Ant 把文件推送到 Linux
  10. 物联网正在蚕食嵌入式系统市场