注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

金融IT小鸿的博客

致力于金融IT行业

 
 
 

日志

 
 
关于我

Organize the world's information I care about and share it with other people! Change the Financial Industry through Information Technology! 爱互联网,爱金融, 爱分享,爱运动, 也爱偶尔胡思乱想! 我是金融IT小鸿

网易考拉推荐

Red5工程从 V0.7 迁移到 V0.8  

2010-07-15 17:48:17|  分类: Red5 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
实验室以前的Red5工程使用的是Red5 V0.7。发现Red5的0.7版到0.8版的变化还是挺大的,不管是从部署和发布工程的方法还是Red5的源代码,都做了挺大的改动。之前尝试过将老工程部署到Red5 V0.8或者更高的版本上,在启动时就报了一大堆错误。我认为是Red5 plugin for Eclipse V0.2已经不适用于Red5 V0.8了。上网狂搜资料,但是由于关于Red5的资源是在没法和FMS比,一直没有搞定。就先凑合着用V0.7。
        最近开始要写数据库了,准备选用Hibernate。写好代码在Red5 V0.7上根本不能用,可能是Spring配置问题,由于Red5和Hibernate都是用了Spring框架,肯定发生了冲突。在Red5官网上的tutorials里,有一篇讲Red5和Hibernate的。悲剧的是要求是Red5 V0.8以上,Hibernate V3.3.1以上。但是有一点引起了我的注意,上面还给了一个Hibernate的测试工程,说是是用Red5 Plugin创建的。难道是Red5 plugin可以在Red5 V0.8上使用?还是Red plugin升级了?
        又是一顿Google狂搜,最终得到了比较官方的说法:来到编写这个插件的公司的CTO Dominick Accattato的博客上看了,发现Red5 plugin V0.2是专门针对Red5 V0.8设计的。看来必须好好找原因,升级工程了。折腾了一下午总算解决差不多了!
主要有两方面的变化,一个是配置文件web.xml和red5-web.xml,另外是API也有变化。
        先说这两个配置文件,由于我对Spring也不懂,网上说你对着Red5 V0.8自带的Sample改一下就行。我是对着admin这个工程改的,感觉这个工程的配置复杂度跟我的工程差不多。在改配置文件的过程中,建议大家使用Red5 plugin(Red5 plugin的安装过程我博客里有),它会将配置错误的信息打印到Eclipse工作台。由于对Spring不熟,一开始也不能一次改对,就不断使用插件重启Red5。每次启动时看看都是配置文件的哪个地方有错,折腾了七八次,终于无错误成功启动Red5。而且在启动信息里看到[INFO] [Launcher:/%你自己工程的名字%],后面不带有任何错误时,说明发布工程成功了。
        然后就是API了,新版本Red5增加了不少内容,但是修改原来API的地方也不多。我的工程里报错的地方是Iscope getConnections方法的返回值类型做了修改。以前是Iterator<IConnection>,现在改为Collection<Set<IConnection>>。因此现在要对Iscope里所有的IConnection遍历时,需要修改代码,具体对应关系如下:

老版本遍历方法:

IConnection current = Red5.getConnectionLocal();  
Iterator<IConnection> it = current.getScope().getConnections(); 
while(it.hasNext()){
//do something
}

新版本遍历方法:
IConnection current = Red5.getConnectionLocal(); 
Collection<Set<IConnection>> connSet = current.getScope().getConnections();
Iterator<Set<IConnection>> iterator= connSet.iterator();
while (iterator.hasNext()) {
Set<IConnection> set = iterator.next();
Iterator<IConnection> it = set.iterator();
while(it.hasNext()){
//do something
}
}

        当然,Red5新版本(其实Red5 0.8 Final已经出来一年了)对API的改动还有很多,比如集成了类似log4j的调试功能等等,还有待于继续研究。总体感觉Red5 plugin用着还是很爽的,方便了Red5工程的部署和调试,在这里再次向Infrared5公司致敬,也希望贵公司能不断更新插件版本,使插件功能更加强大。
  评论这张
 
阅读(826)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017