android中实现消息推送(转)
关于服务器端向 Android 客户端的推送,主要有三种方式:轮询, 应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如果太快,则会大量消耗网络带宽和电池 ; SMS (通过发送短信并解析短信内容来获取服务器端的指令),这个出现的问题是很难找到免费的网关来发送短信;最后就是持久连接,主要是 Socket 通讯,这个解决了性能问题,但是耗电问题依旧没能解决。 在这里,我们主要介绍的是第三种,用持久连接的方式来进行推送。现在比较成熟的及时消息传递协议共有四种,而无疑最为主流就是 XMPP 协议,它是一种基于 XML 的传递协议,具有很强的灵活性和可扩展性。它的特点是将复杂性从客户端转移到了服务器端。在网上可以找到很多的 XMPP 资料,这里就不在赘述了,不然越扯越多。总之, XMPP 主要显著的优点主要有以下几个方面: 1、 分布式 任何人都可以运行自己的 XMPP 服务器,它没有主服务器 2、 安全性很高。 使用 SASL 及 TLS 等技术的可靠安全性 3、 开发性 它是开源的,易于进行学习和了解 4、 跨平台 毋庸置疑,使用的 XML 进行传输的 说完优点,我们言归正传,基于 XMPP 协议的 java 开发有一个开源框架,那就是 smack