使用wildfire和linq实现gtalk,qq,msn大整合


本文档 word 格式下载(带有完整抓图): http://lizongbo.googlepages.com/wildfire_linq.zip

通过wildfire和linq可以将Gtalk,MSN,QQ,在一个客户端中联合起来,以下是我的操作步骤:

需要的软件有:

a.    JDK  1.5.0_09
(来源: http://java.sun.com/javase/downloads/index.jsp)
b.    xmpp(Jabber)服务器 :wildfire
(下载地址:
 http://www.jivesoftware.org/downloadServlet?filename=wildfire/wildfire_3_1_1.zip
地址来源: http://www.jivesoftware.org/downloads.jsp#wildfire )
c.    wildfire 多协议支持的插件
(下载地址: http://www.jivesoftware.org/wildfire/plugins-beta/gateway.jar
地址来源: http://www.jivesoftware.org/wildfire/plugins-beta.jsp )
d.    xmpp(Jabber)客户端 : linq
(下载地址:http://jaist.dl.sourceforge.net/sourceforge/linq/LinQ-4.1.7-setup.exe
地址来源:http://linq.sourceforge.net/ )
e.    wildfire 增强包:

lumaqq的java库,有了这个才能够支持让wildfire支持QQ:
 http://lizongbo.googlepages.com/LumaQQLib.jar
smack,有了这个才能够支持让linq只登录一次就直接使用gatlk了:
 http://lizongbo.googlepages.com/smack.jar
http://lizongbo.googlepages.com/smackx.jar
http://lizongbo.googlepages.com/smackx-debug.jar
(也可以去官方地址下载:
http://www.jivesoftware.org/downloadServlet?filename=smack/smack_2_2_1.zip
来源:http://www.jivesoftware.org/downloads.jsp )
最最关键的是我修改后的gateway增强,替换这个才能够使用qq和 gtalk.:
http://lizongbo.googlepages.com/plugin-gateway.jar ,如果下载不了。那就是因为我还没传上去)

安装步骤:

a.    先安装jdk:
运行jdk-1_5_0_09-windows-i586-p.exe,安装到d:\java目录,安装好之后的目录为:
D:\Java\jdk1.5.0_09
b.    设置JAVA_HOME环境变量,再将%JAVA_HOME%\bin加到Path环境变量中,如图
 
设置主机名
用记事本打开hosts文件(比如 C:\WINDOWS\system32\drivers\etc\ hosts )
增加想用到的xmpp服务域名(比如我的是 lizongbo.im),以及二级域名,然后保存文件
 
安装wildfire.
解压 wildfire_3_1_1.zip到D:\xmpp,解压后得到的目录是:D:\xmpp\wildfire。
复制gateway.jar到D:\xmpp\wildfire\plugins\。
配置wildfire:
先运行:D:\xmpp\wildfire\bin\wildfired.exe。
启动后命令行窗口显示内容为:
.........
Wildfire 3.1.1 [Nov 27, 2006 11:51:13 AM]
Admin console listening at:
  http://127.0.0.1:9090
  https://127.0.0.1:9091
现在开始参数设置:
1.    用浏览器打开 http://127.0.0.1:9090

2.    先选择语言类型:选择中文,然后继续。
 
3.    修改域为刚才在hosts里配置的:lizongbo.im,然后继续
 
4.    由于可以不使用外部数据库,因此选择嵌入的数据库,然后继续。
 
5.    选择默认值初始设置,然后继续。
 
6.    设置管理员邮箱和账号密码,然后继续。
 
7.    此时安装已经完成,选择登录到控制台。

8.    在登录的地方,用户名为admin,密码为刚才设置的密码。
9.    登录后在首页,点页面左下方的“Gateways” 下的“Settings ”,
也就是 http://localhost:9090/plugins/gateway/gateway-settings.jsp
 
10.    将所有的协议转换都打上钩。,然后注销登录。
 
11.    关闭wildfire的命令行窗口。

c.    开始增加QQ和Gtalk支持。
1.将先前准备好的 LumaQQLib.jar,smack.jar,smackx.jar, smackx-debug.jar,
复制到D:\xmpp\wildfire\plugins\gateway\lib,再将修改后的plugin-gateway.jar
复制到D:\xmpp\wildfire\plugins\gateway\lib替换原来的plugin-gateway.jar。
2.在用文本编辑器打开D:\xmpp\wildfire\plugins\gateway\i18n\gateway_i18n.properties,
在最后加上下面一段文字:


# QQ Transport
gateway.qq.shortservice=QQ
gateway.qq.service=QQ IM
gateway.qq.name=QQ Trans
gateway.qq.username=QQ Number
gateway.qq.password=QQ Password
gateway.qq.registration=Please enter your QQ Number and password.


# Gatalk Transport
gateway.gtalk.shortservice=Gtalk
gateway.gtalk.service=Google Talk
gateway.gtalk.name=Gtalk Trans
gateway.gtalk.username=GMail Address
gateway.gtalk.password=Password
gateway.gtalk.registration=Please enter your Gmail address and password.
然后保存gateway_i18n.properties。

再将gateway_i18n.properties 另存为一个新的文件为:gateway_i18n_zh_CN.properties,
即同时存在gateway_i18n.properties和gateway_i18n_zh_CN.properties。
3.再运行D:\xmpp\wildfire\bin\wildfired.exe,此时的wildfire是不光支持AIM, ICQ,ICQ,MSN, Yahoo! Messenger,IRC的协议转换,,还额外可以支持qq和gtalk了。

配置linq
1.    先运行LinQ-4.1.7-setup.exe进行安装.
2.    安装完成之后,运行linq,,在linq主面板上选择“账户设置”。在账户设置的网络连接面板,把“使用指定的服务器地址”打上钩,服务器地址填写为:127.0.0.1
 
3.    在linq主面板的右下方,点“注册新账号”,服务器填:lizongbo.im,就是先前配置的域,用户名和密码都填为test,再点“注册”, (如果注册半天没有反应,请再执行第二步重新再设置一下ip地址,再保存设置。)
 

4.    注册成功之后,用test@ lizongbo.im进行登录。(登录不了的,请重新注册账号)
5.    登录之后,点“Wildfire Server”展开可用的服务列表,在这里可以看见qq和gtalk,
 
配置qq账号:
1.    在“qq.lizongbo.im”上点右键,选择在服务上注册,然后点“下一步”
 
2.    由于服务端配置还有点问题,注册框的标题可能没显示出来,上面第一个文本框填写qq号码,下面的文本框填写QQ密码,然后再点下一步。
 
 
3.    注册成功之后点“完成”。
 
4.    给QQ上的朋友发消息聊天
 

 
配置gtalk账号:
5.    在“gtalk.lizongbo.im”上点右键,选择在服务上注册,然后点“下一步”
 
6.    由于服务端配置还有点问题,注册框的标题没显示出来,上面第一个文本框填写gmail邮箱,下面的文本框填写gmail密码,然后再点下一步。
 
 
7.    注册成功之后点“完成”。
8.    登录另外gatlk账号,给刚才通过linq登录的gtalk账号发消息
 
配置MSN账号:

9.    在“msn.lizongbo.im”上点右键,选择在服务上注册,然后点“下一步”
10.    由于服务端配置还有点问题,注册框的标题没显示出来,上面第一个文本框填写msn账号,下面的文本框填写msn密码,然后再点下一步。
11.    注册成功之后点“完成”。
12.    给在线的同事发消息,经过测试,已经成功。
 
 

致谢:
1.    http://www.jivesoftware.org/ 感谢jive提供了如此优秀的xmpp服务端和客户端库文件。
2.    http://www.google.com/talk/intl/zh-CN/ 感谢gtalk对xmpp协议的支持。
3.    http://linq.sourceforge.net/  非常优秀的xmpp客户端。
4.    http://lumaqq.linuxsir.org/main/  超级出色的纯java的qq客户端。


附注:由于我对xmpp并不十分了解,只用了两天给wildfire增加qq和gatlk网关的支持,因此只将qq和gatlk的支持做到实现基本的聊天功能(qq的在线状态判断不正确,gatlk的好友列表我没取过来),其它很多功能在lumaqq和smack的库中已经有现成的api,但是我现在暂时没时间一一调用。后期我会增加更多的功能,如果需要得到更新的修改后的plugin-gateway.jar,请发邮件索取。邮件标题注明:”请求plugin-gateway.jar”