最近在研究Android的推送,这里主要要讲的用XMPP协议进行android的推送。
Androidpn的全称是android push notification。它一个android推送的开源框架,客户端用到的是asmack,是一个XMMP协议的实现。服务器端用了spring
hibernate进行页面展示,主要是用来显示和服务器建立连接的用户,以及消息的推送。如下图:
官方的代码实现是用的Jetty来代替tomcat实现的,刚拿到官方代码时,一头雾水,费了一天的时间了解了服务器端的整体构建,然后进行重构。首先把羡慕部署在tomcat上,编译会发现出了很多错误,然后进行整改,删除一些和tomcat重复的包,然后删掉jetty等等等等,具体细节就不阐述了。整改成功后,测试可用,今天开始研究androidpn服务器端的源代码,其实本来我不太了解XMPP协议的,经过这几天的学习,大概明白一点了。下面开始讲解下androidpn中的几个关键类。
首先登场的当然是和客户端简立连接的类了。是在org.androidpn.server.xmpp.net下的Connection类里,如下是它其中的字段:
public class Connection {
private static final Log log = LogFactory.getLog(Connection.class);
private IoSession ioSession;
private Session session;
private ConnectionCloseListener closeListener;
private int majorVersion = 1;
private int minorVersion = 0;
private String language = null;
private TLSPolicy tlsPolicy = TLSPolicy.optional;
@SuppressWarnings("unchecked")
private static ThreadLocal encoder = new ThreadLocalEncoder();
private boolean closed;
其中iosesion引用的MINA框架中的一个类,它是MINA中所有session类的顶级接口,它是线程安全的,其中定义了一些客户端的端口 地址等属性信息,主要是用来保存服务器和客户端之间建立连接的一些信息。MINA是一个socket框架,主要是为了多线程管理socket的出现的,有兴趣的朋友可以看一看。
Session是一个抽象类,也是自定义的,主要是描述一些服务器和客户端的信息。Majorversion和minorversion指的是主版本和副版本。
Tlspolicy指的是传输协议的策略,是一个枚举类型,分为三种required,optional,disabled.
Encoder主要是来定义编码的,这里用的是utf8。
在这个类里,还有一个ClientAuth,也是枚举类型,主要是用来表示客户端是否需要验证。它主要的功能是用来建立连接,定义了一下发送数据到客户端的方法,还有就关闭连接的时候绑定监听器进行处理。
今天好晚了,明天继续…
- 大小: 33.4 KB
分享到:
相关推荐
AndroidPN(Android Push Notification)是Android平台上的一种消息推送服务,旨在帮助开发者实现在应用程序后台时仍然能够接收服务器发送的通知或数据。在AndroidPN服务器推送的实现中,有以下几个关键知识点: 1....
AndroidPN(Android Push Notification)是一种基于XMPP协议的开源消息推送系统,专为Android平台设计。这个项目包含两部分:客户端应用和服务器端组件。在本文中,我们将深入探讨这两个部分以及它们的工作原理。 ...
AndroidPN离线推送是一种在Android平台上实现的消息推送技术,它允许应用在用户设备处于离线状态时仍能接收到服务器发送的通知。这个技术的核心在于优化应用程序的通信效率,提高用户体验,尤其是在用户没有打开应用...
AndroidPN(Android Push Notification)是一种基于XMPP(Extensible Messaging and Presence Protocol)协议的开源消息推送客户端,主要用于Android平台。XMPP是一种开放标准的即时通讯协议,它允许应用程序通过...
AndroidPN(Android Push Notification)客户端是一款专门为Android操作系统设计的应用程序,用于实现远程服务器向设备推送通知的功能。在移动应用开发中,推送通知是一项至关重要的特性,它允许应用程序在后台状态...
AndroidPN(Android Push Notification)是一种基于Google Cloud Messaging (GCM) 的第三方消息推送服务,用于在Android设备上实现后台消息的实时推送。AndroidPN的主要功能是帮助开发者在应用程序不运行时,仍然...
**AndroidPN消息推送-Tomcat版**是一种用于Android设备的消息推送系统,它利用XMPP协议实现了客户端与服务器之间的实时通讯。本系统分为客户端和服务端两大部分,采用Java语言编写,并结合了Asmack库与Openfire...
AndroidPN(Android Push Notification)是一款基于XMPP协议的Android消息推送服务的开源项目。XMPP(Extensible Messaging and Presence Protocol)是一种实时通信协议,广泛应用于即时消息和在线状态的处理,它...
AndroidPN(Android Push Notification)是一种基于Android平台的推送通知服务,它允许开发者向用户的设备发送实时消息,即使应用在后台或完全关闭的状态下也能接收到这些消息。这种服务对于提高用户体验,保持应用...
而“使用Androidpn完成推送”指的是在开发这款应用时,采用了Android Push Notifications(AndroidPN)服务来实现远程消息推送。AndroidPN是一个开源的Android推送服务,允许开发者向用户的设备发送通知,即使应用...
在这个过程中,AndroidPN(Android Push Notification)是其中一种流行的消息推送服务解决方案,通常应用于Android平台,但也可以跨平台使用。AndroidPN项目由韩国开发者SehwanNo开发,是一个开源的项目,支持消息推...
AndroidPN(Android Push Notification)是一个专门针对Android平台设计的消息推送系统,其服务器端源码的开放为开发者提供了自定义和扩展的可能性。本文将深入探讨AndroidPN服务器端源码的关键知识点,帮助开发者...
AndroidPN(Android Push Notification)是专门为Android平台设计的一款推送服务,旨在提高应用程序的实时通信效率,减少应用在后台运行时对系统资源的占用。增强版的AndroidPN在基础功能上进行了优化,提供了更加...
androidpn为Android应用提供消息通知推送支持, 它本质上服务器端基于 Openfire,客户端基于 asmack,这二者都最 XMPP IM 开源实现里的二个基本组件,应该说 androidpn 只是把二者更多地结合起来用于做 Push的场景。...
关于服务器端向Android客户端的推送,主要有三种方式:轮询,应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果...
### AndroidPN消息推送完善版详解 #### 一、概述 ...总结而言,AndroidPN消息推送系统是一种基于XMPP协议的高效消息推送解决方案,通过精心设计的客户端和服务端架构,能够为用户提供稳定可靠的消息推送服务。
**AndroidPN推送服务器详解** AndroidPN(Android Push Notification)是一个为Android设备提供实时消息推送服务的开源项目。它允许开发者通过服务器向安装了特定应用的Android设备发送通知,无需保持应用程序在...
#### 二、AndroidPN推送机制概述 AndroidPN是一个开源项目,它提供了一种用于Android设备的消息推送服务。其核心优势在于采用了XMPP协议,这是一种基于XML的即时消息和在线状态协议,被广泛应用于诸如QQ、MSN和...
AndroidPN(Android Push Notification)是针对Android平台设计的一种推送服务,它基于XMPP(Extensible Messaging and Presence Protocol)协议实现。XMPP是一种开放标准的即时通讯协议,广泛应用于聊天、协作和推...