在网上看了很多的apns的介绍,我看了大多都是PHP的讲解如何服务器对接苹果服务器以及发送推送,我这边就不介绍苹果APNS的原理了,不过其中有几个需要介绍的地方。需要注意
一、苹果服务器有两种连接方式
1,HTTP/2,这是苹果APNS在2015年12月份弄出来的,这个新版本的协议基于HTTP/2和JSON。有一篇文章总结的很好,我就直接复制过来,方便点。
原文地址:http://www.oschina.net/translate/http2-protocol-for-apns?cmp
新的APNS协议基于HTTP/2:
新的特性和功能:
-
基于JSON的请求和响应
-
对于每个通知,如果成功响应,将会返回200标识 - 不用再去猜测通知是否被接收到
-
响应错误将会以JSON字符的形式返回
-
消息的长度从2048个字节增加到4096个字节
-
连接状态可以通过HTTP/2的ping框架来进行检查
-
支持主题
-
通用的推送证书 - 开发和生产使用同一个证书即可
-
Development server:
api.development.push.apple.com:443
-
Production server:
api.push.apple.com:443
今天讲解的重点不在这里,原因是笔者我在重构公司的推送服务器的时候用的C开发,而当时使用的CURL版本太低了,而且CURL在7.47.0才开始支持HTTP2,并且需要nghttp(至少1.0.0)的支持,而本身部署服务器的环境不太好改动,因此就作罢,苹果本身是很支持使用HTTP2,我以后会想办法用python来处理的。
CURL处理HTTP2的说明:点击这里
基于HTTP2的官网文档:点击这里
2,第二种连接方式叫做 binary interface,今天的重点也是这个