对于推送的相关理解

来源:互联网 发布:watch 养宠物软件 编辑:程序博客网 时间:2024/05/16 23:55

对于推送的相关理解    

1.对于推送的理解

    推送是指服务器定向传递消息到客户端。

2.推送实现的两种方法

(1)Pull:客户端主动向服务器索取消息,按一定的时间间隔向服务器查询是否有新消息。

(2)push:服务器主动向客户端推送消息,需要建立客户端到推送服务器的长连接,服务器端可向推送服务器发送推送信息,推送服务器收到信息后通过已经建立好的长连接向客户端发布消息。

3.poll与push的优缺点

(1)pull:

       优:不需要额外实现,对网络要求不高。

       缺:受查询频率的影响,不能确保推送消息的实时性,延迟较高。

    (2)push:

       优:消息的延时低。

       缺:实现较为繁琐;由于需要维护客户端到推送服务器的长链接,故对网络要求较高;对客户端流量和电量的消耗更大。

4.推送系统设计的主要目标

    低迟延,低功耗,低成本,系统稳定,可靠。

5.推送系统设计中主要考虑的外部条件

    网络环境,客户端服务支持,客户端数量,服务器的吞吐率,开发的硬件成本,系统对延迟和稳定性的要求。

6.推送系统设计需要解决的具体问题(push实现方法下)

    (1)长链接的心跳算法

       心跳频率:需要对延时和能耗进行平衡。

       心跳的重启时机:在网络不稳定,网络切换等情况下需要重启心跳。

    (2)端与端之间数据传输的方式

       需要考虑对传输流量的控制。

    (3)对客户端在线和离线的处理

       对离线客户端所囤积的推送信息的处理。

7.推送系统的更多要求

    服务器对高并发的处理,如何使推送服务能在客户端长时间运行,怎样去判断消息是否传达到位,推送在两个平台间差异处理等。

8.ios和android系统推送设计的特点

(1)ios系统的推送服务必须依赖于apple的APNS(ApplePush Notification service)。

(2)android系统的推送服务有google的GCM(Google Cloud Messaging)也就是之前的C2DM服务(Android Cloud to Device Messaging )。然而由于网络问题,国内的推送基本不能使用该服务,所以需要应用商自行设计推送系统。

 

0 0
原创粉丝点击