一个基于red5+flash的网络聊天室red5Chat
发布时间:2020-12-15 06:23:43 所属栏目:百科 来源:网络整理
导读:? ? 前两天发现一个开源的基于red5+flash的聊天室软件red5Chat,于是想搭起来玩玩,没想到遇到一大堆问题。 ? ? 首先到http://www.red5chat.com/下载源码red5chatv2.1.zip,在解压后的目录中有一个Install.txt文件,简单的介绍了安装过程。 ? ?? ? ? 先编译
? ? 前两天发现一个开源的基于red5+flash的聊天室软件red5Chat,于是想搭起来玩玩,没想到遇到一大堆问题。
? ? 首先到http://www.red5chat.com/下载源码red5chatv2.1.zip,在解压后的目录中有一个Install.txt文件,简单的介绍了安装过程。 ? ?? ? ? 先编译服务器端的java代码,建一个名为chat的java工程(注意项目名,否则需要更改相关设置),red5chatv2.1JAVA-RED5000目录下的源码及配置文件copy过来,注意设置符合red5的目录结构。编译成功后,部署到red5/webapps中。 ?? ? ? 编辑*.fla文件需要用到falsh软件,到Adobe上去下载Adobe Flash Professional CS5.5,成功安装后,打开red5Chat.fla,在Action窗口中根据需要修改AS代码,主要是IP,其它可以不用修改。 ? ?? _root.IP = "192.168.1.80"; _root.port=1934; _root.authentificateURL = "http://"+_root.IP+"/red5chat/testlogin.php"; _root.infoUserURL="http://"+_root.IP+"/red5chat/infouser.php"; ? ? 权限验证需要php及mysql的支持,所以先不考虑。修改ip后直接发布red5/webapps/chat目录中。在发布选项中可以勾选"html wrapper",这样就会自动生成相应的html文件。启动red5,就可以到浏览器中输入http://localhost:5080/chat/red5Chat.html查看效果了。 ? ? 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.1dddPHPcreate_tables.sql中的sql语句,在这之前可能需要将sql语句中的关键字"TYPE"替换为"ENGINE",否则可能提示语法错误,这是mysql的版本不兼容造成的。然后打开Connectionsccon1.php文件,修改数据库登录信息 $hostname_con1 = "192.168.9.80:3306"; $database_con1 = "red5chat"; $username_con1 = "gavin"; $password_con1 = "123456"; ? ? 现在将客户端部署到Apache中的web目录中,默认为D:Program FilesApache Software FoundationApache2.2htdocs。 ?目录结构如下: htdocs -red5Chat.html -red5Chat.swf -crossdomain.xml -red5chat -infouser.php -testlogin.php -Connections -con1.php? ? 上面的目录结构中,有一个名为crossdomain.xml的文件,这是用于flash的跨站访问((关于crossdomain.xml,参考http://site.douban.com/widget/notes/1961289/note/187507426/)),内容如下: <?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy> ps:如果缺少crossdomain.xml文件可能会导致奇怪的错误。我在使用flash调用时,可以成功登录聊天室,但部署到Apache中或者是copy到其它目录中,总是提示密码错误。后来想到用chrome的debug功能,于是用chrom打开red5Chat.html,打开debug窗口,在NetWork中发现无法链接到crossdomain.xml,这才找到了问题所在。 ? ? ? ? ? ?? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |