基于XMPP协议的aSmack源码分析

Posted zhangtian6691844

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于XMPP协议的aSmack源码分析相关的知识,希望对你有一定的参考价值。

基于XMPP协议的aSmack源码分析

      在研究如何实现Pushing功能期间,收集了很多关于Pushing的资料,其中有一个androidnp开源项目用的人比较多,但是由于长时间没有什么人去维护,听说bug的几率挺多的,为了以后自己的产品稳定些,所以就打算自己研究一下asmack的源码,自己做一个插件,androidnp移动端的源码中包含了一个叫做asmack的jar。

Reader和Writer

     在asmack中有两个非常重要的对象PacketReader和PacketWriter,那么从类名上看Packet + (Reader/Wirter),而TCP/IP传输的数据,叫做Packet(包),asmack使用的是XMPP协议,XMPP简单讲就是使用TCP/IP协议 + XML流协议的组合。所以这个了对象的作用从字面上看应该是,写包与读包,作用为从服务端读写数据。

     PacketWriter中一定含有一个Writer对象,这个Writer是一个输出流,同样的PacketReader对象中有一个Reader,而这个Reader是一个输入流,Writer和Reader对象就是一个简单的读写器,他们是从socket对象中获取出来后,经过装饰变成现在这个样子。

1 reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
2 writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));

以上是关于基于XMPP协议的aSmack源码分析的主要内容,如果未能解决你的问题,请参考以下文章

android asmack 注册 登陆 聊天 多人聊天室 文件传输XMPP协议简介

Android基于xmpp的即时通讯应用

发送和接收 IQ ASMACK Android XMPP

Android中实现自定义XMPP消息包收发

Android中实现自定义XMPP消息包收发

Android中实现自定义XMPP消息包收发