Android 推送机制详解

Android 推送机制详解

1、android平台的推送方式

1.1android pull推送方式

Pull方式方式,顾名思义,就是拉。

这种方式就是客户端从服务器端拉取数据(Data)下来,具体是如何拉的呢?

客户端会和服务器端建立一个网络连接,然后用这个链接,去轮询服务器的消息接口。

如果有消息过来就会被客户端获取到。

缺点:

耗电,因为要通过建立网络连接,设置频率去轮询,要消耗一定时间的CPU运行时间,比较消耗电量和网络流量。

优点:

编程方便(其实也不是方便的啦,哈哈)

1.2 android push推送方式

Push的方式有好几种。

第一种,push(message)通过第三方短信平台给要推送的客户端发送短信的方式来实现推送。

具体通过如下步骤:

第三方平台发送短信到目标手机;

目标手机接收到短信,解析短息的意图;

目标手机发送网络请求到服务器端请求推送数据(Data)。

 

缺点:

短信平台比较费钱。

优点:

省点。

 

第二种,push长连接方式。

如何维持android 客户端和服务器端的长连接?

设置网络请求的心跳链接,用AlarmManager来实现心跳链接,设置一个链接的频繁度。

当服务器给客户端发消息时,或者客户端和服务器的这个链接timeout时,长连接就回断掉,所以我们需要用心跳链接,来重新建立长连接。

 

注意,在建立连接的时候需要发送长度为0的数据来保持连接,不然NAT映射表会失效。

 

*我们知道我们移动端要和Internet进行通信,必须通过运营商的网关,所以,为了不让NAT映射表失效,我们需要定时向Internet发送数据,因为只是为了不然NAT映射表失效,所以只需发送长度为0的数据即可。

 

第三种,用C2DMgoogle提供的云端推送服务,不过你懂的,在国内用不了哦。哈哈

C2DM原理图:


主要通过如下几个步骤:

1、客户端发送 userAccout 信息,账户信息到云端。

2、然后云端返回一个注册的ID(Registration ID)

3、然后根据这个注册ID(Registration ID)user account信息发送到自己的服务器上,

4、服务器发送registration ID+Data 给云端服务器,

5、云端服务器发送data给目标机。

 

第四种,push(XMPP)方式推送。

科普,XMPP是一种轻量级的基于XML可拓展标记语言,实际上就是TCP协议的XML流。

XMPP推送过程图解:


主要步骤如下:

1、客户端发送用户数据(目标机的IMIE,版本等等信息)给服务器端。

2、服务器端认证用户目标机。

3、认证通过,服务器和客户端建立session会话。

4、服务器端发送推送消息给客户端。

 

 

XMPP服务器端架构图:


 

解释下最顶上的四个Manager:

Session Manager 是管理会话的。

Auth Manager是管理认证的。

Presence Manager是管理用户登录状态的

Notification Manager是管理推送消息的。

 

附:android pn项目开源源码主页:

服务器端和客户端都是java语言的哦。哈哈。

http://sourceforge.net/projects/androidpn/

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值