一个基于red5+flash的网络聊天室red5Chat

前两天发现一个开源的基于red5+flash的聊天室软件red5Chat,于是想搭起来玩玩,没想到遇到一大堆问题。
首先到http://www.red5chat.com/下载源码red5chatv2.1.zip,在解压后的目录中有一个Install.txt文件,简单的介绍了安装过程。

先编译服务器端的java代码, 建一个名为chat的java工程(注意项目名,否则需要更改相关设置),red5chatv2.1\JAVA-RED5000目录下的源码及配置文件copy过来,注意设置符合red5的目录结构。编译成功后,部署到red5/webapps中。

编辑*.fla文件需要用到falsh软件,到Adobe上去下载Adobe Flash Professional CS5.5,成功安装后,打开red5Chat.fla,在Action窗口中根据需要修改AS代码,主要是IP,其它可以不用修改。

[plain] view plain copy print ?
  1. _root.IP = "192.168.1.80";

  2. _root.port=1934;

  3. _root.authentificateURL = "http://"+_root.IP+"/red5chat/testlogin.php";

  4. _root.infoUserURL="http://"+_root.IP+"/red5chat/infouser.php";


权限验证需要php及mysql的支持,所以先不考虑。修改ip后直接发布red5/webapps/chat目录中。在发布选项中可以勾选"html wrapper",这样就会自动生成相应的html文件。启动red5, 就可以到浏览器中输入http://localhost:5080/chat/red5Chat.html查看效果了。

0_13295361676G4J.gif

PS:
1).启动red5时遇到了如下错误
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Error
loading class [chat.Application] for bean with name 'web.handler' defined in Se
rvletContext resource [/WEB-INF/red5-web.xml]: problem with class file or depend
ent class; nested exception is java.lang.UnsupportedClassVersionError: chat/Appl
ication : Unsupported major.minor version 51.0
Caused by: java.lang.UnsupportedClassVersionError: chat/Application : Unsupporte
d major.minor version 51.0
googleb了一翻,原来是java版本问题。虽然使用了jdk1.6, 还需要在Properties->Java Compiler->Compiler compliance level中,选择1.6版本。
2).浏览red5Chat.html时,会发现右侧没有滚动条,如果显示器比较低就无法完全显示flash了。只需要找到html文件中的overflow:hidden,删除掉,即可解决。


增加权限验证功能
权限验证功能需要php、mysq及Apache的支持,这个环境搭建比较麻烦,搭建好后实现起来就容易了。red5不支持php所以要使用Apache。
打开red5Chat.fla中的权限验证功能_root.authentification=true,重新发布。
在mysql创建名为redtchat的数据库,执行red5chatv2.1ddd\PHP\create_tables.sql中的sql语句,在这之前可能需要将sql语句中的关键字"TYPE"替换为"ENGINE",否则可能提示语法错误,这是mysql的版本不兼容造成的。然后打开Connections\ccon1.php文件,修改数据库登录信息
[php] view plain copy print ?
  1. $hostname_con1 = "192.168.9.80:3306";

  2. $database_con1 = "red5chat";

  3. $username_con1 = "gavin";

  4. $password_con1 = "123456";


现在将客户端部署到Apache中的web目录中,默认为D:\Program Files\Apache Software Foundation\Apache2.2\htdocs。
目录结构如下:
[plain] view plain copy print ?
  1. htdocs

  2. -red5Chat.html

  3. -red5Chat.swf

  4. -crossdomain.xml

  5. -red5chat

  6. -infouser.php

  7. -testlogin.php

  8. -Connections

  9. -con1.php

上面的目录结构中,有一个名为crossdomain.xml的文件,这是用于flash的跨站访问((关于crossdomain.xml,参考http://site.douban.com/widget/notes/1961289/note/187507426/)),内容如下:
[html] view plain copy print ?
  1. <?xmlversion="1.0"?>

  2. <cross-domain-policy>

  3. <allow-access-fromdomain="*"/>

  4. </cross-domain-policy>


ps: 如果缺少crossdomain.xml文件可能会导致奇怪的错误。我在使用flash调用时,可以成功登录聊天室,但部署到Apache中或者是copy到其它目录中,总是提示密码错误。后来想到用chrome的debug功能,于是用chrom打开red5Chat.html,打开debug窗口,在NetWork中发现无法链接到crossdomain.xml,这才找到了问题所在。


你可能感兴趣的:(Flash,网络聊天室,red5Chat,基于red5)