一、概要
转眼毕业了,毕业设计的课题是“基于XMPP协议的通讯工具”,开发平台式android,实现了基本的离线消息,文字聊天,表情聊天,文件传输,语音聊天的功能。 本文主要介绍开发过程中服务器的配置,开发包Asmack的使用,以及其它一些开源包的使用(如表情包)。
二、XMPP协议以及Openfire服务器
1,XMPP协议
何为XMPP协议,简要(不精确)地说:“XMPP一种开源的通讯协议,只要是基于这个协议开发的通讯工具,都可以相互通讯(不同服务器的用户则需要在服务器相互连接的前提下,才能跨服务器通讯)。” 另外XMPP协议以前的名字是Jabber。 关于XMPP协议的官网,如下(英文为官网,中文为国人翻译的版本) XMPP官网 XMPP官网中文翻译
2,Openfire服务器
开发过程中只需要专注于客户端的开发,因为我们可以使用开源免费的服务器Openfire
另外,开发过程中可以用一个测试客户端,官网提供的Spark,目前最新版本(好久没更新)存在一个问题,收发文件的功能不是很稳定。
##三,Asmack开发包 API的使用
smack是官方给出的xmpp协议在java平台的开发包,而asmack是android平台的xmpp协议开发包 Asmack下载官网:
smack和Asmack的API基本没有区别,所以可以开发过程可以参照smack的API
##四,表情聊天 表情聊天使用了开源包Emojicon
##五,版本问题
开发过程中遇到两个关于版本的问题
1,Openfire 3.9.2开始才支持emoji字符,3.9.1及更旧的版本多不支持emojicon字符 2,不知道为什么部分版本的asmack在文件传输时会出现问题,以下这个版本是我在网上找到的一个可以正常使用的版本