iOS推送原理详解

iOS推送原理详解,第1张

1.APNS的推送机制

首先我们看一下苹果官方给出的对ios推送机制的解释。如下图

Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。

上图可以分为三个阶段:

APNS推送通知的详细工作流程

下面这张图是说明APNS推送通知的详细工作流程:

根据图片我们可以概括一下:

1. 什么是远程消息推送?

3. 实现消息推送的步骤

总结下大致流程

1.设备打开某个App后,会生成唯一的 一个token ,并把这个token上传给我们自己的服务器,我们的服务器有了token,就可以向我们的app推送通知了,这个是前提。但是这个通知并不能直接推送给我们的设备,而是要推送给苹果的服务器。

2.我们的服务器会将token和推送的内容,一起推送给苹果的服务器。

3.苹果服务器会根据token定位到设备,将push推送给设备。

4.设备拿到这个push,就会知道是哪个app。然后就可以将这个通知推送到具体的app。

推送的实现方式: 

想要收到推送消息 ,就必须要有后台服务器(下面的1、2)往 苹果的APNs的服务器发请求。 

1、公司自己开发后台服务器程序 

2、 采用第三方的后台服务程序,比如:百度云推送、极光推送、友盟推送

我最近也在做后端,Python,Ruby,Node 都用了一下,最后选择 NodeJS。

在选择时,Ruby on Rails,Django 第一个出局,因为考虑到 API 应该轻,快。

Python 曾经用过 Flask,考虑过 Bottle。不过两者的 Extensions 的功能都无法需求。

Ruby 的 Sinatra 是最好用的。选择 Sinatra + Mongoid,一个星期可以搞出来(我自己的情况)。

现在选择用 NodeJS 的 ExpressJS + Mongoose 搭配。从 Ruby 转成 Node,主要是因为看上 NodeJS 的性能。Request per Second 的话,NodeJS 7000 左右,ExpressJS 3000 左右,Sinatra 900 左右,Ruby on Rails 300 左右。

我写 JavaScript 都是用 CoffeeScript 写的,所以写起来就像写 Ruby 或 Python 一样,非常 Lisp。

ExpressJS 的开发也是这些框架里面,最活跃的。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/380015.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存