Flex:Openfire之SparkWeb开发环境搭建历程分享

春节后因项目需要,研究了把XMPP/Openfire,此前曾玩过spark,基于JAVA写的客户端,总觉得用Swing做的界面比较丑,作为IM客户端运行效率也不行(做个ERP,深有感触)。无意间发现Openfire客户端还有一个基于Flex的实现,那就是SparkWeb,太棒了,正好这段时间一直在用Flex写微博客户端,赶紧搭环境吧,这个过程,可真是一波三折,听我慢慢道来。

首先是SparkWeb开源项目与其引用库项目的版本问题,老匹配不上,官网只提供了一个svn库,说明文档少的可怜,唯有自己瞎摸吧,这里说一下,遇到问题,Google真是个好东西,不愧是互联网老大,Google一下,啥都能知道。下面把问题和解决方法列一下,让和我一样的朋友少走些弯路,也省点摸索时间。

1) 各项目的版本问题。要搭建SparkWeb开发环境,需要配置4个项目,SparkWeb,SparkWebCommonComponents,SparkWebCore,XIFF,其中第1个是程序入口,2,3,4是引用的库项目。

第1,2,3个项目使用http://svn.igniterealtime.org/svn/repos/sparkweb/branches/soc08 这个分支的代码,

第4个项目使用http://svn.igniterealtime.org/svn/repos/xiff/branches/summer_of_code_2008 这个分支代码,

特别说明:如果都使用主干代码,程序跑不起来,会报socket异常(呆会把异常粘贴上来)

2) Flex Sdk 版本:需要使用Flex3.5版本,不能使用Flex4.0以上版本,也不能选用4.0版本,勾选兼容3.5模式,否则启动异常;

3) Flex Web应用调试时需要使用IE作为默认浏览器,其他浏览器好像有问题,而修改默认浏览器需要修改注册表,具体请百度搜索如何修改默认浏览器。修改完默认浏览器后,启动调试会提示没找到flashplayer_debug器,按照提示进入Adobe网站下载flashplayer_10_ax_debug.exe,进入安全模式安装(这点很重要,否则安装失败),安装完后可以正常启动调试了。

4) 以上分支的代码需要作些修改,否则取_node时会报空对象引用 (老外写代码也不严谨啊~~)

/XIFF/src/org/jivesoftware/xiff/core/AbstractJID.as

public function get node():String

{

if(_node !=null && _node.length > 0) //这里如果不判断为空,用IP地址登录会报错

return _node;

return null;

}

5) 注销登录的代码没写,从主干代码添加过去。

/**

* Add by winters_huang @Ver0.9.0

*

* */

public static function logout():void

{

// We may want to implement a way to logout without restarting the entire application (especially for SparkAir). SW-73

// All of the managers would deinitialize and unregister their event listeners. Then SparkWeb would show its login dialog.

connectionManager.logout();

}

6) 关于Openfire服务器的系统属性xmpp.domain

由于配置Openfire服务器都是每一个步骤都是默认的,导致后来使用IP地址在SparkWeb访问时报服务器域名与访问地址不一致问题,Google一下发现可以修改Openfire的系统属性(AdminConsole可以修改),将此值改为具体的IP值,如果不用域名,会导致问题(4),修改代码解决;

7)SparkWebCommonComponents 项目的assets 目录下的images用了快捷方式形式,在Windows系统下不好使,需要把http://svn.igniterealtime.org/svn/repos/sparkweb/branches/soc08/assets 的image 目录拷贝过来。

仍然在研究XMPP协议与Openfire,欢迎志同道合的朋友一起讨论,我的微博:http://t.sina.com.cn/51centos

Flex:Openfire之SparkWeb开发环境搭建历程分享

Flex:Openfire之SparkWeb开发环境搭建历程分享