使用Androidpn进行推送(一)

 

       最近在研究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是一个抽象类,也是自定义的,主要是描述一些服务器和客户端的信息。Majorversionminorversion指的是主版本和副版本。

       Tlspolicy指的是传输协议的策略,是一个枚举类型,分为三种required,optional,disabled.

 

       Encoder主要是来定义编码的,这里用的是utf8

       在这个类里,还有一个ClientAuth,也是枚举类型,主要是用来表示客户端是否需要验证。它主要的功能是用来建立连接,定义了一下发送数据到客户端的方法,还有就关闭连接的时候绑定监听器进行处理。

       今天好晚了,明天继续

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值