基于XMPP协议即时通讯工具开发总结

一、概要

转眼毕业了,毕业设计的课题是“基于XMPP协议的通讯工具”,开发平台式android,实现了基本的离线消息,文字聊天,表情聊天,文件传输,语音聊天的功能。 本文主要介绍开发过程中服务器的配置,开发包Asmack的使用,以及其它一些开源包的使用(如表情包)。

二、XMPP协议以及Openfire服务器

1,XMPP协议

何为XMPP协议,简要(不精确)地说:“XMPP一种开源的通讯协议,只要是基于这个协议开发的通讯工具,都可以相互通讯(不同服务器的用户则需要在服务器相互连接的前提下,才能跨服务器通讯)。” 另外XMPP协议以前的名字是Jabber。 关于XMPP协议的官网,如下(英文为官网,中文为国人翻译的版本) XMPP官网 XMPP官网中文翻译

2,Openfire服务器

开发过程中只需要专注于客户端的开发,因为我们可以使用开源免费的服务器Openfire

Openfire官网地址:

Openfier 服务器配置教程:

另外,开发过程中可以用一个测试客户端,官网提供的Spark,目前最新版本(好久没更新)存在一个问题,收发文件的功能不是很稳定。

Spark下载地址:

##三,Asmack开发包 API的使用

smack是官方给出的xmpp协议在java平台的开发包,而asmack是android平台的xmpp协议开发包 Asmack下载官网:

smack和Asmack的API基本没有区别,所以可以开发过程可以参照smack的API

smack(Asmack) API官网:

smack(Asmack)使用指导:

##四,表情聊天 表情聊天使用了开源包Emojicon

Emojicon官网:

##五,版本问题

开发过程中遇到两个关于版本的问题

1,Openfire 3.9.2开始才支持emoji字符,3.9.1及更旧的版本多不支持emojicon字符 2,不知道为什么部分版本的asmack在文件传输时会出现问题,以下这个版本是我在网上找到的一个可以正常使用的版本

可以使用的asmack下载地址: