黑马程序员技术交流社区

标题: 【济南中心】Android就业面试技巧系列-技术篇(消息推送) [打印本页]

作者: 小鲁哥哥    时间: 2017-5-26 20:04
标题: 【济南中心】Android就业面试技巧系列-技术篇(消息推送)
【济南中心】Android就业面试技巧系列-技术篇(消息推送)

关于消息推送 总结一:
消息推送原理:
消息推送 定义就是服务器主动发消息给客服端,
消息推送最简单的方法就是使用第三方的,比如现在使用比较多的是极光推送,极光推送的技术原理是:移动无线网络长连接。
免费的消息推送 :  建立服务器端和客服端的长连接

消息推送的思路:
1: Android push notification(androidpn)(韩国人写的) 是一个基于XMPP协议的java开源实现,它包含了完整的客户端和服务器端。
缺点:稳定性差, 连接数量有限,目前已经停止维护了  优点: 免费,可扩展
2:自己实现xmpp协议,(OpenFire框架, 已经实现了xmpp协议, 甚至说 可以不用动xmpp协议) 优点: 单台机器就能容纳20万个链接,非常稳定,支持可扩展和自定义  缺点:需要专业的JAVA知识
3 :轮询(每隔一定的时间 主动去服务器上检查有没有新消息 . )

关于消息推送 总结二:
①消息推送机制概述:
当我们开发和服务器交互的应用时,基本上都需要获取服务端的数据,这就需要消息推送机制来实现。

②获取服务器上不定时更新的信息的两种方式:
第一种是客户端使用Pull(拉)的方式,客户端每隔一段时间去服务端获取信息,看是否有更新的信息,有就获取
第二种是服务端使用Push(推)的方式,服务端更新数据了,就把更新的数据Push到客户端
注:虽然Pull和Push方式都能实现获取服务端更新的数据的功能,但明显的Push方式比Pull更节省用户的流量和电量

③消息推送解决方案:
****轮循Pull:
应用程序阶段性的与服务器进行连接并查询是否有新消息
缺陷:要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池
****SMS Push:
通过拦截SMS消息并且解析消息内容来了解服务器的意图
缺陷:成本相对比较高,你很难找到免费的短消息发送网关
****持久连接Push:
缺陷:很难在手机上实现一个可靠的服务,并且非常消耗手机的电池
④消息推送服务:
XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。
这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息
androidpn是一个基于XMPP协议的java开源Android push notification实现
注:
  XMPP协议实现Android推送的最大优势就是简单,我们不需要象C2DM那样依赖操作系统版本,也不会担心某一天Google服务器不可用。
利用XMPP协议我们还可以进一步的对协议进行扩展,实现更为完善的功能。采用这个方案,我们目前只能发送文字消息,
不过对于推送来说一般足够了,因为我们不能指望通过推送得到所有的数据



【济南中心】就业面试技巧系列(持续更新中...)
http://bbs.itheima.com/forum.php?mod=viewthread&tid=339539
(出处: 黑马程序员IT技术论坛)

【济南校区】Android/php/JavaEE课程笔记同步+面试技巧同步更新
http://bbs.itheima.com/forum.php?mod=viewthread&tid=338140
(出处: 黑马程序员IT技术论坛)



作者: baby14    时间: 2018-12-14 08:15
多谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2