1、iOS推送流程
APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。苹果远程可以分为三个阶段:第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。
主要流程如下:
1.1、应用程序注册APNS消息推送。
1.2、iOS从APNS Server获取devicetoken,应用程序接收device token。
1.3、应用程序将device token发送给程序的PUSH服务端程序。
1.4、服务端程序向APNS服务发送消息。
1.5、APNS服务将消息发送给iPhone应用程序。
2、制作推送发布证书
首先我们要有生成一个Certificate Signing Request(也就是CSR)的请求文件。在应用程序里的使用工具中找到钥匙串访问。选择从证书颁发机构请求证书。
在苹果https://developer.apple.com/account/resources/certificates/list 这里注册生成生产环境需要的证书,上传刚才在本机生成CSR文件,然后生成aps.cert文件,下载到本电脑上,并且双击安装到钥匙链里面
在钥匙链里面找到刚才下载的证书文件,右健选择要导出的p12文件,密码可以随意设置
3、将发布证书生成pem文件
openssl x509 -in 下载的cert文件 -inform der -out 导出的Cert.pem
openssl pkcs12 -nocerts -out Key.pem -in 导出的p12.p12
cat PushChatCert.pem PushChatKey.pem > ck.pem 合并两个文件
4、在node-apn中配置参数
var apn = require('@parse/node-apn');
var options = {
cert:"cert.pem",
key:"ck.pem",
production: enviromen
};
var apnProvider = new apn.Provider(options);