现在的位置: 首页 > 综合 > 正文

开源IM工具编译与环境搭建攻略

2013年08月16日 ⁄ 综合 ⁄ 共 3881字 ⁄ 字号 评论关闭



开源
IM
工具编译与环境搭建攻略

因为工作的缘故,需要考察一下目前比较流行的开源
IM
客户端与服务器。由于本人是搞
C++
的,并且需要
IM
平台与现有的一款产品能够实现互联互通,所以将
IM
平台开发语言基本锁定在
C++
或者
C#
,经过考察后发现一款优秀的
C#
语言开发的
IM
开源平台
agsXMPP

。并且采用了一款非常优秀的
JAVA
语言开发的
IM
客户端
spark

作为测试参考,服务器则采用了
openfire

这篇文章并不完全是我的原创,为了能够顺利的实现利用
agsXMPP
开源平台制作的客户端能够通过
openfire
服务器与另外一个客户端
spark
进行互联互通以及相互发送文件,我参考了
openfire
的网站相关内容,也在网上参考了其它一些解决方案,不过我将在整个过程中遇到的问题进行了一些总结和归纳,希望后来的同学们能够从这篇文章中得到帮助。

一、

搭建环境所需要的源码工程及其
SVN
地址

1.    



agsXMPP

SVN
地址是:

svn://svn.ag-software.de/agsxmpp/trunk

2.    



openfire

SVN
地址是:

http://svn.igniterealtime.org/svn/repos/openfire/trunk

3.    



spark

SVN
地址是:

http://svn.igniterealtime.org/svn/repos/spark/tags/spark_2_5_8

二、

编译
agsXMPP

编译
agsXMPP
很简单,只需要用
Visual Studio .NET 2008
打开相关工程文件并且编译即可,一般情况下不会出现什么错误。

但是由于客户端采用的是
agsXMPP
自带的实例
miniclient
,服务器端采用的是
openfire
,所以我们在编译源码的时候需要考虑到这两者之间的连通性,经过实际的验证发现,必须对
miniclient
中的相关源代码进行修改后方能顺利通信。

1.   



认证协议问题

agsXMPP
在认证的时候,默认使用
DIGEST-MD5
,但是在
openfire
下无法认证通过,改成
PLAIN
即可,也就是在
miniclient

frmMain.cs

XmppCon_OnSaslStart
方法中,将如下两行的注释去掉:

args.Auto = false;

args.Mechanism = agsXMPP.protocol.sasl.Mechanism.GetMechanismName(agsXMPP.protocol.sasl.MechanismType.PLAIN);

2.   


Iq


Openfire
不支持
Iq
节带

to

的属性,所以在
agsXMPP
中发送
Iq
节的时候先
RemoveAttribute("to")
一下就行了,具体的就是找到
agsXMPP
源代码目录下的
sasl/saslHandler.cs
文件中,所有调用
SendIq
方法的前面,都加入如下语句:

bIq.RemoveAttribute("to");

 

好了经过修改后重新编译,我们就可以顺利的与
openfire
服务器进行身份认证并可以发送消息了。

 

三、

编译
spark

编译
spark
也很简单,
spark

openfire
的官方网站上提供了
SVN
下载,编译以及搭建调试环境的方法,我也顺便抄录到这里。

1.   


安装
JDK

这个不用说了,注意版本,最少要
1.5
,推荐使用最新的
1.6
版本

2.   


安装
Eclipse3.3

a)        



从官网下载
Eclipse
3.3 (


Java
开发者用的
)

b)        



假设你把
eclipse
安装在
c:/program files/eclipse,
进入这个文件夹,为
eclipse.exe
创造一个桌面图标,右击这个图标,选择

属性

,打开属性对话框,在

目标

的输入框里,输入如下

"C:/Program
Files/Eclipse/eclipse.exe" -vm "C:/Program
Files/Java/jdk1.6.0/bin/javaw"

熟悉
eclipse
的都知道这是为
eclipse
指定使用哪个
Java
VM


3.   



eclipse
安装
Subversive
插件

a)        



用上面建的图标打开
eclipse
,下面开始安装
Subversive
插件,由于我用的是英文版的
ecplipse



下面的菜单我都用英文。

b)        



点击
Help::Software
Updates::Find and Install...

c)        



点击

Search for new features to install

,点

Next

d)        




New
Remote Site...

按钮

e)        




name
的输入框里输入
Subversive
,并且在
URL
输入框里输入

http://www.polarion.org/projects/subversive/download/1.1/update-site
           

(最新的
Subversive
地址上

http://www.eclipse.org/subversive

查询)

f)         



点击
Finish

,开始安装
Subversive

eclipse
将搜索网站,并且在下一个窗口中显示你想安装的功能

选择安装
Subversive SVN Team Provider Plugin

Subversive Client Libraries
下面所有的功能

g)        




Next

eclipse
开始安装过程,安装结束后重启
eclipse


4.   


利用
svn
方式下载
spark
代码

a)        



点击如下
Windows::Open
Perspective::Other...

b)        



弹出一个
“Open
Perspective”

对话框,选择
“SVN
Repository Exploring”

,单击
OK

c)        



这是
eclipse
界面发生变化,在左边的
“ SVN Repositories”
面板上,右击鼠标选择
New::Repository Location...

d)        




“New
Repository Location”

的位置输入上面提供的
SVN
地址,单击
“Finish”

e)        





SVN Repositories

面板上,会发生变化,展开它,找到
spark
的选项,右击
spark
下面的
trunk
项,选择
“Check Out”
,下载
spark
的代码。

f)         



下载完成后,选择
Window::Open
Perspective::Java

,在
Project
Explorer

面板上,
 

看到
Spark
项目,删掉它,在弹出来的对话框中选择
“Do not delete contents” 

在工作目录下面找到
spark
文件夹,里面就是
spark
的源代码。其实我们可以通过打包下载源码的方式来获得源码,但那样我们就无法及时跟踪

spark
最新的源码升级,同时有了版本管理,还可以在修改
spark
的过程中,方便的比较与原版的差异,所以还是强烈建议大家采用
SVN
方式下载。

5.   


创建
Spark
项目

a)        



点击
Window::Open
Perspective::Java

菜单

b)        




Project
Explorer

窗口中
,
如果有
spark
这个项目
,
把它删了
,
删除时
,
会问你要不要删除文件
,
选择不要
.

c)        



选择
File::New::Project...,
再选择
Java::Java Project,

New Java Project
窗口选择

"Create project from existiing source",

然后把
spark
文件所在的文件夹加进去
.

d)        




"project
name"

中输入
spark,
要和文件夹的名字相同
.

e)        




Finish.

6.   


生成
Spark

a)        



点击
Window::Show
View::Ant

b)        



右击
Ant
面板
,
选择
Add
Buildfiles

c)        



展开
spark::build
文件夹
,
选择
build.xml,
点击
"OK"

d)        




Ant
面板
,
展开
Spark,
双击
"release",
等一段时间
,
会提示
"Build Successful".

7.   


Create
Project Builder

a)        



点击
Run::Open
Debug Dialog...,

出现
"Run"
窗口

b)        



选择
"Java
Application",

点击
"New"
按钮
.

c)        




"Main"
标签页
,

New_configuration
换成
Spark
或其它的这个无所谓
.

d)        



点击
Project::Browse
按钮
,
选择
Spark,
再点
OK.

e)        



点击
Main
class::Search

按钮
,
选择
main
所在的类
Startup-org.jivesoftware.launcher,

再点击
OK

f)         



建议勾选
Stop
in main.

g)        



点击
Classpath
标签页
,
选择
User
Entries ,

使得
Advanced..
按钮变的可用
.

h)        



点击
Advanced
按钮
.
在弹出来的
Advanced
Options

窗口
,
选择
Add
Folders,

再点
OK,

Folder Selection
窗口选择
spark::src::resources

文件夹
,
点击
OK

i)         



抱歉!评论已关闭.