as3与red5通信---学习一

 

 

第一步:设置环境 

下载red5 http://osflash.org/red5 
安装版本 当前最新版本为:Red5 v0.6.3 Final released 。
另外一中方法是下载源码编译运行。我这里就不介绍了。

注意安装的时候,有个选项为 “注册为服务” 这个不要选,否则运行时候会报错。


下载eclipse 3.2以上版本,最好装一个flex3插件,(as3的编辑器)

下载jdk 或者jre (red5安装的时候要选择jre路径)

 

ant 这东西,如果不熟悉的话可以不用。直接用eclipse编译就可以。

 

 

 


 


第二步:搭建目录结构
        
 

red5的那些例子多放在webapps/root目录下,我们做的事情跟它一样。搭建一个和root差不多的应用。

 

有很多中方法 这里用red5提供的模板Red5/doc/templates/myapp (把此目录拷过去改名就行)

一般如下
工程名为 :red5_server
webapps/red5_server/WEB-INF/
                                                            src
                                                            lib
                                                            classes
                                                            web.xml
                                                            red5-web.xml
                                                            red5-web.properties
                                                            log4j.properties

这个跟我们一般java 的应用有点不一样,src在WEB-INF里面,当然你也可以放到外面。只要在eclpse中
把它当做资源文件夹就可以。为什么要放到里面,这个我也没有深入的研究。别忘了把classes设置为输路径。      

 


 

第三步:编写服务端java代码

注意:

要加red5.jar和commons-logging-1.1.jar到编译路径里,因为用到了LogFactory和ApplicationAdapter
 。这两jar在路径:Red5/red5.jar 和red5/lib/commons-logging-1.1.jar

package test;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IConnection;
public class TestCon extends ApplicationAdapter{
 
 private static final Log log = LogFactory.getLog(TestCon.class );
 public TestCon(){
  
 }  
 public boolean appStart(){
  log.info( "Red5First.appStart" );    
  return true;
 }   
 public void appStop(){
  log.info( "Red5First.appStop" );
 }
 public boolean appConnect(IConnection conn , Object[] params){   
  log.info( "Red5First.appConnect " + conn.getClient().getId() );    
  return true;  
  
 }        
 public void appDisconnect( IConnection conn , Object[] params ){ 
 
  log.info( "Red5First.appDisconnect " + conn.getClient().getId() );
  
 }
 
}

 


 

第四步:修改配置文件
  

red5-web.properties :
      webapp.contextPath=/red5_server
      webapp.virtualHosts=localhost, 127.0.0.1


red5-web.xml:
    <bean id="web.handler"      
                class="test.TestCon"        
                singleton="true"/>
    


web.xml:  
  
      <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>/red5_server</param-value>
      </context-param>

删除:  
  <bean id="myhandler.service"
        class="the.path.to.my.ServiceHandler"
        singleton="true"/>

其中log4j.properties可以不改,默认为空

 

 


 

 
  
第五步:编写客户端as代码
       

最好客户端与服务端分开
建一个flex工程新建src等文件目录。 跟一版的 web应用没有什么区别。

package test
{
  import flash.net.NetConnection;   
  import flash.net.ObjectEncoding;   
  import flash.events.NetStatusEvent;   
  import flash.display.Sprite;
  public class TestCon extends Sprite{
    
  private var nc:NetConnection;
  public function TestCon():void{
     
    nc = new NetConnection( );             

    nc.objectEncoding = ObjectEncoding.AMF0;           
  
    nc.addEventListener( NetStatusEvent.NET_STATUS , netStatus );          
           
    nc.connect( "rtmp://localhost/red5_server" , true);
  }             
              
  private function netStatus (event:NetStatusEvent):void{           
             
    trace( "连接情况......../n"+event.info.code);          
    if (event.info.code == "NetConnection.Connect.Rejected" ){                     
       trace( event.info.application );            
      }       
    }

  }  
}   

 


 

第六步:测试运行
新建一个fla在第一帧上写上代码
import  test.* ;
var a:TestCon = new TestCon();

在客户端flash 能打印出
连接情况........
NetConnection.Connect.Success

服务端java 打印
[INFO] 2008-01-29 18:14:52,031 pool-3-thread-3:( test.TestCon.appConnect ) Red5First.appConnect 0
[INFO] 2008-01-29 18:14:52,031 pool-3-thread-3:( test.TestCon.appConnect ) Red5First.appConnect 1
....

 


 

第七步:处理参数。。还在研究当中
      

  

 


 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值