OpenFire 是采用Java开发的基于XMPP(Jabber)协议,开源实时协作(RTC)服务器。

Smack 是用 Java编 写的XMPP客户端代码库,是 spark 的核心

开源界总是有许多有趣的东东,这三个合起来就是一个完整的XMPP IM 实现。

OpenFire ——服务器端

Spark——客户端

Smack——XMPP 传输协议的实现

三者都是基于Java 语言的实现,其中XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用。

OpenFire 是基于XMPP 协议的IM 的服务器端的实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。

Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始项目的影响降到最低。

Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能


三者之间的关系:


从上图可知,Client 端和Server端都可以通过插件的方式来进行扩展,Smack是二者传递数据的媒介。


OpenFire官方

官方介绍:

http://www.igniterealtime.org/index.jsp

官方下载:

http://www.igniterealtime.org/downloads/index.jsp


OpenFire Installation Guide