1.了解使客户端能够实时收到服务器真个方式:第1种是客户端使用Pull(拉)的方式,就是隔1段时间就去服务器上获得1下信息,看是不是有更新的信息出现。第2种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就可以自动的接收到消息。
2.几种常见的解决方案实现原理
1)轮询(pull)方式:客户端定时向服务器发送询问消息,1旦服务器有变化则立即同步消息,但是轮询的频率太慢可能致使某些消息的延迟,太快则会大量消耗网络宽带和电池;
2)SMS(push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这类方式1般用户在经济上很难承受,需要依赖于运营商;
3)客户端和服务器端之间建立久长连接,这样就能够实现消息的及时性和实时性;
3.对大量的数据推送,且不需要及时推送,则轮询比较适用。利用集成Service组件的类来进行定义、实现。
4.长时间连接中第3方的消息推送方式,则适用于及时推送,数据量其实不是很大的消息推送,由于消息推送需要依赖于第3方的服务器来进行转发,如果第3方的服务器奔溃则您的消息推送也会遭到影响,可能这类情况产生的其实不会多吧。对第3方的消息推送方式我也有所研究,主要研究了极光消息推送和百度云消息推送。其实这两种方式是差不多的,都是自己封装的1个方法,进行消息推送,想要学习的可以到其官网上进行注册开发者账号进行研究,可以在官网上下载demo进行研究,由于方法已封装好,用起来也不是很难,成心愿的可以进行1下研究,但是注意,该方式的消息推送需要依赖于第3方进行转发。
5.固然要想要安全与及时的进行消息推送,还是需要自己去进行相干协议的了解,自己封装方法来进行消息推送。1般可使用的协议有:MOTT协议、XMPP协议。
1)MQTT是1个轻量级的消息发布/定阅协议,它是实现基于手机客户真个消息推送服务器的理想解决方案。
2)XMPP(可扩大通讯和表示协议)是基于可扩大标记语言(XML)的协议,它用于即时消息(IM)和在线探测。这个协议可能终究允许因特网用户向因特网上的其他任何人发送即时消息。Google官方的C2DM服务器底层也是采取XMPP协议进行的封装。听说这个协议是1种比较适合的消息推送的协议,成心者也能够研究1下,本人小菜鸟也在研究中,但是还是没有甚么头绪,纠结......
最后,说1下,可能有些人认为我说的都是1些空话,我只是想给那些和我1样的小菜鸟1个思路吧,这也是我研究后总结的。