天天看点

openfire+android实现IM



1、下载源码openfire_src_3_9_3.zip,目前最新的版本是3.9.3

2、把下载好的openfire_src_3_9_3.zip解压到工作空间,结构和目录如下:

openfire+android实现IM

3、把openfire_src\build\eclipse目录下面的settings、classpath、project全部复制到openfire_src\目录下,然后把openfire_src\classpth、openfire_src\project、openfire_src\settings修改成Eclipse工程配置文件格式,重命名为在每个原有的名字上加上一个点,即.classpth、.project、.settings。注意:在windows下面不能直接重命名,需要在dos下面操作,即进入相应的目录执行,rename classpth.classpth即可,其它两个文件执行一样的操作:

openfire+android实现IM

4、然后打开Eclipse,选择 File –> Import…openfire_src导入即可:

导入后目录结构如下:

openfire+android实现IM

大家会发现自己这个项目上出现了一个感叹号,进入构建路径,会发现:

openfire+android实现IM

这说明这个jar包缺失了,选中这个文件,然后点击右边的Remove按钮,将其移除,当然,我们也可以去网上下载一个,点击右边的AddJARs...将其加上,不过我没加也没出现问题

openfire+android实现IM

移除后出现三个错误,没关系,我们一步步修复错误,\openfire_src\src\java报错,是因为有jar包,没有引进来,我们将其引进即可:

openfire+android实现IM

注意:一次只能引用一个,所以需要操作四次,才行。点击OK以后,我们发现\openfire_src\src\java上的错误已经没有了。

      \openfire_src\src\plugins\clustering\src\java报错,是因为缺少coherence.jar,coherence-work.jar,tangosol.jar这三个jar包,我们将复制到\openfire_src\build\lib目录下,然后将这三个jar包,加入构建路径:

openfire+android实现IM

这时我们发现\openfire_src\src\plugins\clustering\src\java上的错误已经消失了,这里我提供一下这三个jar包的下载地址,http://download.csdn.net/detail/u013947002/8153483,当然,你也可以去其它地方下载。

最后一个在\openfire_src\src\plugins\sip\src\java上的报错是因为 SipCommRouter.java和SipManager.java这两个类没有实现抽象方法和完成异常处理,最简单的解决办法是利用Eclipse自动修复功能进行修复即可。现在我们发现我们的项目已经没有任何错误了。

5、ANT编译项目

Eclipse已经集成了Ant,所以我们只需要在 /openfire_src/build/build.xml 文件右击,选择Run As –> Ant Build即可完成编译,编程成功后,会在/openfire_src/的跟目录下生成两个新的文件夹:target和 work。(JAVAHOME需要配置正确,这里就不多说了)

6、运行Openfire项目

①、在Build Path配置中把 /openfire_src/src/i18n、/openfire_src/src/resources/jar、/openfire_src/build/lib/dist文件夹添加到 Source 中,如图:

openfire+android实现IM

②配置启动参数

选择Run –> RunConfigurations…左边的Java Application,单击右键,选择 New:

openfire+android实现IM

把默认name:New_configuration修改成:ServerStarter;

选中Main选项卡,点击Browse按钮选择 openfire_src 项目;单击Search按钮输入:ServerStarter自动过滤后选择:ServerStarter– org.jivesoftware.openfire.starter:

openfire+android实现IM

选中Arguments选项卡,在VM arguments

中填入:-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"

openfire+android实现IM

注意:项目路径 ${workspace_loc:openfire_src}

选中Common选项卡,将Debug和Run打钩(方便之后快速启动),然后点击apply,再点击run:

openfire+android实现IM

③运行后控制台日志如下:

openfire+android实现IM

④浏览器中输入地址:http://127.0.0.1:9090回车:

openfire+android实现IM

6、选择中文,然后继续。服务器设置可直接跳过。数据库设置选择标准数据库连接,点击继续

openfire+android实现IM

7、在数据库设置-标准连接设置界面,选择数据库驱动mysql,更改数据库url,其中需要更改的有服务器ip地址,还有数据库名,建议单独建立一个名为openfire的数据库。输入数据库管理员的账号和密码,下一步。

openfire+android实现IM

8、数据库连接成功后界面,直接点击继续。

openfire+android实现IM

9、管理员账户设置界面,输入管理员的邮箱地址,还有管理员的账号的密码,初始账号为admin。

openfire+android实现IM

10、完成设置,登录到管理控制台,初始账户名admin密码为上一步设置的密码。

openfire+android实现IM

11、登陆成功后显示

openfire+android实现IM

12、检测服务器是否配置成功,到http://www.igniterealtime.org/downloads/index.jsp下载Spark

openfire+android实现IM

13、安装Spark,一路next,然后finish。运行Spark,创建Spark账号

openfire+android实现IM

32、使用创建的账号登陆Spark,登陆成功可在Openfire管理控制台的用户组看到新注册的用户和在线状态

openfire+android实现IM
openfire+android实现IM

到这里服务端算是结束了,接下来就是android端了,android就是用xmpp实现了发送消息,注意把ImManager类的ip改为自己的服务器的ip,这样就可以跑起来了,androidim demo:http://download.csdn.net/detail/u013947002/8153531

初学者,大神请指教