zoukankan      html  css  js  c++  java
  • 移动推送方案的初步探索

    前言

    进入移动互联网时代以来,大部分厂商需要通过移动推送的方式来向用户推送各种消息和通知(比如优惠活动等),来增加和用户的粘度。本文主要针对移动推送,来总结一下自己最近的学习经验。
    最早起源于Email的推送,进入到移动端领域,则主要侧重于移动客户端。而客户端来获取服务端的数据,主要有两种方式:

    • 第一种是客户端 PULL(拉)方式,即每隔一段时间去服务器获取是否有数据;
      • 优点:简单;
      • 缺点:实时性较差。
        我们也可以通过提高查询频率来提高实时性,但这又会造电量、流量的消耗过高。
    • 第二种是服务端 PUSH(推)方式,服务器在有数据的时候主动发给客户端,该方式基于 TCP 长连接方式实现。
      • 优点:消息实时性好;
      • 缺点:要保持 APP 客户端和服务端的长连接心跳,会带来额外的电量和流量消耗;

    一句话总结

    因此在整体架构设计中需要折中平衡,目前主流的推送实现方式都是基于 PUSH 的方案。

    移动推送的三种方式

    目前,移动推送主要有三种实现方式,其中PULL一种,PUSH两种,具体如下文:

    轮询()PULL)

    客户端和服务端定期建立连接,通过异步消息队列来查询服务端是否有新的数据。但是,这种方式的最大的问题是不好控制查询的频率:

    • 频率过低数据更新不及时;
    • 频率过高则会加快资源的消耗(电量和流量等)。

    短信推送 (SMS PUSH)

    该方式借助运营商的短消息,通过短信形式来向用户推送消息,优点突出:能够最好的保证消息的实时性;但是,缺点同样不容忽视:采取该方式,会根据发送消息的条数支付相应的费用,成本较高。

  • 相关阅读:
    【BZOJ1930】[Shoi2003]pacman 吃豆豆 最大费用最大流
    【BZOJ3444】最后的晚餐 乱搞
    C语言的 32个关键之和9个控制语言之关键字
    10进制如何转二进制
    (转)这些开源项目,你都知道吗?(持续更新中...)[原创]
    如何将一个HTML页面嵌套在另一个页面中
    SNMP学习笔记之SNMPWALK 命令
    Linux学习笔记之Centos7设置Linux静态IP
    Linux学习笔记之Linux通过yum安装桌面
    Linux学习笔记之Linux启动级别
  • 原文地址:https://www.cnblogs.com/JackHou/p/11925976.html
Copyright © 2011-2022 走看看