最近在研究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 消息推送客户端+服务器端
androidpn离线推送 android离线推送包括:1.数据库 2.服务端 3.空白App项目 4.APP端源代码 5.说明 6.打包好的jar 绝对值2分
androidpn消息推送 其中包含客户端 服务器端包含tomcat和jetty版本
androidpn 代码中实现了服务器重启后自动重连和离线消息推送和消息回执 android手机端的消息推送实现
androidpn-client推送客户端
【整理】解刨AndroidPN消息推送.pdf 【整理】解刨AndroidPN消息推送.pdf
会议管理类应用、使用Androidpn完成推送、华为AnyOffice比赛个人组第一名。
韩国著名的开源消息推送AndroidPN客户端,采用XMPP协议。
androidpn消息推送-tomcat版,最新修改,并且验证通过,写了一个专门的文档,公大家参考。
androidpn 推送系统
androidpn 消息推送 服务器端源码 可以自己修改也可以直接启动运行 包含web的管理页面 最全面的android消息推送服务端程序
androidpn为Android应用提供消息通知推送支持, 它本质上服务器端基于 Openfire,客户端基于 asmack,这二者都最 XMPP IM 开源实现里的二个基本组件,应该说 androidpn 只是把二者更多地结合起来用于做 Push的场景。...
androidpn消息推送完善版,基于web服务器
关于服务器端向Android客户端的推送,主要有三种方式:轮询,应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果...
这是android消息推送开发的开源代码,这里为大家提供一下,我们可以一起学习下
用androidpn来实现推送(tomcat)
androidpn 含有服务端和客户端 ,实现android推送功能,内有txt文档说明
Androidpn推送框架源码分析及配置方法,压缩包里面包括服务端和客户端代码,及说明文档
androidpn推送