app消息推送(ios/android)基础知识

手机推送会遇到存在两种情况:

  1. app在界面或后台运行(端内)
  2. app从后台被移除(端外)

端内推送

  1. 轮询:定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。(适合小型) 【h5的新api web worker单独开一个新的线程很适合用于这个任务】
  2. 长轮询:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。(服务器hold连接会消耗资源,返回数据顺序无保证,难于管理维护。)
  3. 长连接(iframe):在页面里嵌入一个隐蔵iframe,将这个隐蔵iframe的src属性设为对一个长连接的请求或是采用xhr请求,服务器端就能源源不断地往客户端输入数据。 (优点:消息即时到达,不发无用请求;管理起来也相对便。 缺点:服务器维护一个长连接会增加开销。)
  4. 长连接(Websocket):
    WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。依靠这种技术可以实现客户端和服务器端的长连接,双向实时通信。

端外推送

  1. 可以使用IOS以及Android自带的长连接服务器,分为别APNs(苹果的)以及GCM(安卓的)。这两个服务器主要负责推送系统服务,所以只要手机联网就保持链接—— 但是因为国内无法使用谷歌,所以GCM没法用,手机商也将相应的功能去掉了。
  2. 第三方平台(友盟协议):app之间共享推送通道
  • 小米推送(MiPush)
  • 华为推送(华为Push)
  • 友盟推送(U-Push)
  • 个推
  • 极光推送
  • 阿里云移动推送(Alibaba Cloud Channel Service)
  • 腾讯信鸽推送
  • 百度云推送

分类:

  • 大手机厂商的推送:小米推送、华为推送。
  • 专业的第三方推送:友盟推送、个推、极光推送
  • BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送。

通知栏消息与透传消息的选择

通知栏消息:在被送达用户的设备后,直接以系统通知的形式展示给用户。它不会继续被传递到App。

透传消息:在被送达用户的设备后,还会继续路由到App,通过回调App的某个BroadcastReceiver的形式将消息传递到App内部。然后由App决定如何处理和显示这个消息。

透传消息增加了被系统限制的概率,通知栏消息有更好的送达率(建议尽量采用通知栏提醒的方式推送消息)

你可能感兴趣的:(其他,app,推送,ios)