`
fkpwolf
  • 浏览: 49796 次
  • 性别: Icon_minigender_1
  • 来自: 爱你就是认识我自己
文章分类
社区版块
存档分类
最新评论

Android上的Push Notification和XMPP

阅读更多

Android有个让人赞赏的特征:实时的同步。

1)如果你有新的Gmail邮件,手机可以马上收到邮件通知,这个中间可能有2,3秒的延迟,一般感觉还是很及时的;

2)如果你的联系人和Google Contanct是关联的话,你用桌面浏览器访问Gmail,修改联系人信息,很快新的联系人信息就会同步到你手机上。

最简单的实现可能用轮询(Polling)了,但这种方式有缺点:一则增大服务器的负担,想想如果每个客户端每隔半小时访问服务器,而大多数情况下 服务器是没有更新数据的,对比起来服务器的负担就很浪费了,半小时的时间又很难做到实时的更新…;二则对于手机这种客户端,轮询浪费电源这个手机最宝贵的 资源。

解决的方式是长连接,有好几种,这里讲的比较全面:超越轮询?考虑PubSub、Push和MOM 。也可用类似Comet的长连接,而Android里面用的是XMPP。

当运行了上面的第二种操作后,在logcat里面可以看到如下log:
11-02 21:45:08.706: DEBUG/Smack/Packet(148): [READ] <message id=”xL62aX-26″ stanza-id=”269508591457″ to=”fkpwolf@gmail.com/androidfCv23kaFEJQd0Mc” from=”gmail.com” type=”headline”><data xmlns=”google:mobile:data” category=”GSYNC_TICKLE” token=”http://www.google.com/m8/feeds/contacts/fkpwolf@gmail.com/base2_property-android” from-trusted-server=”true”><app-data key=”account” value=”fkpwolf@gmail.com” /></data></message>

网上查找一番后会发现Smack是XMPP一个比较流行的客户端lib,而这里面的message正是XMPP一种类型为headline的消息, 为通知类的消息,而聊天的则为chat类型。虽然Smack是开源的,Android里面的这部分做的很private,search代码没有任何发现。 Google虽然不做恶,但是也不是做善事的。

 

剩下部分请移步这里:http://www.fkpwolf.net/2009/11/15/android%e4%b8%8a%e7%9a%84push-notification%e5%92%8cxmpp2/

3
0
分享到:
评论

相关推荐

    Android push notification方案比较

    【Android Push Notification 方案比较】 在开发Android应用时,向用户实时推送通知是必不可少的功能,Android提供了多种推送通知方案,包括C2DM(Cloud to Device Messaging)、MQTT(Message Queuing Telemetry ...

    Android push notification 服务端源代码

    Android Push Notification服务是Android应用程序与用户交互的一种重要方式,它允许应用在后台向用户发送消息,即使应用没有在运行。AndroidPN(Android Push Notification)是一个开源项目,专注于提供服务端的解决...

    Android Push Notification

    An open source project to provide push notification support for Android -- a xmpp based notification server and a client tool kit.

    Android Push Notification客户端源码包

    综上所述,Android Push Notification客户端源码包是实现Android应用实时推送功能的重要工具,它基于XMPP协议,提供了一套完整的客户端实现。开发者可以通过学习和修改源码,更好地适应自己的应用需求,提高用户体验...

    javasmack源码-xmpp-push-notification:xmpp消息推送

    xmpp-push-notification xmpp消息推送 XMPP协议实现Android推送功能 Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)...

    Android源码基于Xmpp的消息推送

    本文将详细解析基于Xmpp(Extensible Messaging and Presence Protocol)的Android消息推送实例——AndroidPN(Android Push Notification)。 Xmpp是一种开放的即时通讯协议,它允许用户进行实时双向通信,广泛...

    XMPP(Android客户端的实现__Tomcat版的Androidpn_)

    Tomcat版的AndroidPN(Push Notification)项目是基于XMPP协议的一个推送通知服务,它利用了Tomcat服务器和MySQL数据库来处理和存储推送信息。 首先,要搭建这个系统,你需要确保已经安装了Java Development Kit ...

    Android 基于XMPP协议IM聊天实现(客户端+服务端) 源码

    在本文中,我们将深入探讨如何使用XMPP协议在Android平台上实现一个完整的即时通讯(IM)系统,包括客户端和服务器端的实现。XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准,广泛用于...

    Android 推送原理(Android Push Notification)详解

    AndroidPN(Android Push Notification)项目就是一个基于XMPP的开源推送解决方案,尽管存在一些bug和成熟度问题。 AndroidPN项目提供了服务器端和客户端的源码,服务器端代码(androidpn-server)、示例应用...

    XMPP消息推送Demo【服务器+客户端】

    AndroidPN(Android Push Notification)服务器是为Android设备提供消息推送服务的一个实现,它允许开发者向已安装的应用程序发送通知,即使应用在后台或完全关闭状态。服务器的搭建和配置是实现推送服务的关键步骤...

    xmpp客户端源代码

    首先,AndroidPN(Android Push Notification)客户端版本0.5.0是一个开源项目,它实现了使用XMPP协议为Android设备提供推送通知服务。这个项目可以帮助开发者学习如何在Android应用中集成即时通讯功能,例如创建...

    Android XMPP通讯自定义Packet&Provider

    摘要 在xmpp通信过程中,asmack中...androidpn (Android Push Notification)是一个基于XMPP协议的java开源Android push notification实现。它包含了完整的客户端和服务器端。 androidpn包括Server端和Client端,项目名

    XMPP协议学习资料

    为了实现在Android客户端与服务器之间的持久连接,以实现服务器向客户端的推送通知,AndroidPN(Android Push Notification)是一个值得提及的开源项目。AndroidPN集成了Asmack,以处理与XMPP服务器的连接和通信。...

    xmpp 即时通讯在4app上找到的很好用

    3. **标准化**:XMPP是IETF(Internet Engineering Task Force)标准,有广泛的社区支持和众多开源实现,比如Gajim、 Psi等桌面客户端,以及iOS和Android上的XMPP库。 4. **安全性**:XMPP支持SSL/TLS加密,可以...

    xmpp-androidPn server and client

    在这个“xmpp-androidPn server and client”的项目中,我们关注的是XMPP在Android平台上的应用,特别是在实现推送通知(Push Notification)方面的功能。 服务端组件: 1. androidpn-server-0.5.0-bin.zip:这个...

    xmpp androidnp

    AndroidNP,全称Android Notification Push,旨在为Android应用提供稳定、高效的消息推送功能,弥补了C2DM在国内无法使用的空缺。通过集成AndroidNP,开发者能够实现在后台向用户设备发送通知,即使应用没有运行也能...

    openfire为服务器的XMPP的即时通信样例

    【标题】:基于Openfire的XMPP即时通讯服务器实践 ...以上就是关于Openfire服务器及Android集成XMPP即时通信的详细知识点介绍,通过这些知识,你可以搭建自己的即时通讯系统,并在移动设备上实现流畅的聊天体验。

    anroid完美实现 push推送 源码奉送

    在Android平台上实现Push推...综上所述,"anroid完美实现 push推送 源码奉送" 提供的AndroidPN框架是学习和实践Android Push推送服务的好资源,开发者可以通过研究源码了解其工作原理,并根据项目需求进行定制和优化。

    xmpp的介绍

    在服务器端,AndroidPN(Android Push Notification)服务使用Java语言开发,基于Openfire并结合Spring框架。其主要组件包括SessionManager、Auth Manager、Presence Manager和Notification Manager。SessionManager...

    asmack-android-16jar包

    **asmack-android-16.jar** 是一个专为Android平台设计的开源推送框架,它主要用于实现AndroidPN(Android Push Notification)客户端的功能。AndroidPN是一个完全开源的、基于服务器的推送通知服务,允许开发者向...

Global site tag (gtag.js) - Google Analytics