iOS消息推送APNS(Java实现HTTP/2协议发送)
首先来了解一下苹果的消息推送APNS(英文全称:Apple Push Notification service)
先来看两张苹果对于推送的两张解释图:
大概的意思就是,提供商把消息推送至苹果的推送服务器,再由苹果推送服务器将消息推送给手机客户端,或者反过来手机客户端把消息推送至苹果推送服务器,再由苹果推送服务将消息推送至提供商。这里提到的提供商可以是像极光推送或其他供应商,亦或是自己的服务器。
这里提到了苹果推送服务器向手机端推送消息,那么它是怎么知道是推送到哪个手机上的呢,这个就汲及到一个Token的问题。
Token是每台iOS手机唯一的标识,在启动手机应用时,会向苹果推送服务器去请求得到唯一的Token。当然,虽然每次应用启动时都会去请求得到Token,但是针对于同一部手机,返回回来的Token值都是一致的。
所以当苹果推送服务器只要知道要推送给哪个Token即可知道是推送至哪个手机。
接下来看一下APNS如何去实现消息的推送
1.首先是要准备好证书
从你的苹果电脑上导出CSR文件,打开钥匙串-->钥匙串访问-->证书助理-->从证书颁发机构请求证书,然后一路输入邮件地址和保存的文件,保存到电脑,CSR文件就生成了。
到苹果开发者官网http://developer.apple.com,登陆进入到证书管理模块,Identifiers --> App IDs, 如果你的应用ID还没有添加进来,那么点右上角加号添加进来,如果已经加进来了,单击进入,进行设置,将Push Notifications 设成Enable.
在Certificates创建推送证书,生成后下载双击安装到电脑。这篇文章写的是HTTP/2无证书发送,所以不需要导出p12给服务器去发消息,只需要安装到mac就可以了。
由于推送需要用到真机,所以还需要