流媒体传输知识整理(六)

web.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

  <display-name>Red5Test</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <context-param>

    <param-name>webAppRootKey</param-name>

    <param-value>/Red5Test</param-value>

  </context-param>

  <!--

 <context-param>

       <param-name>parentContextKey</param-name>

       <param-value>default.context</param-value>

    </context-param>

 

    <context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>WEB-INF/classes/*-web.xml</param-value>

    </context-param>

 

    <listener>

        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

    </listener>

 

    <servlet>

       <servlet-name>gateway</servlet-name>

       <servlet-class>org.red5.server.net.servlet.AMFGatewayServlet</servlet-class>

       <load-on-startup>1</load-on-startup>

    </servlet>

 

    <servlet>

       <servlet-name>rtmpt</servlet-name>

       <servlet-class>org.red5.server.net.rtmpt.RTMPTServlet</servlet-class>

       <load-on-startup>2</load-on-startup>

    </servlet>

 

    <servlet-mapping>

       <servlet-name>gateway</servlet-name>

       <url-pattern>/gateway</url-pattern>

    </servlet-mapping>

 

    <servlet-mapping>

        <servlet-name>rtmpt</servlet-name>

        <url-pattern>/fcs/*</url-pattern>

    </servlet-mapping>

 

    <servlet-mapping>

       <servlet-name>rtmpt</servlet-name>

       <url-pattern>/open/*</url-pattern>

    </servlet-mapping>

 

    <servlet-mapping>

       <servlet-name>rtmpt</servlet-name>

       <url-pattern>/idle/*</url-pattern>

    </servlet-mapping>

 

    <servlet-mapping>

       <servlet-name>rtmpt</servlet-name>

       <url-pattern>/send/*</url-pattern>

    </servlet-mapping>

 

    <servlet-mapping>

       <servlet-name>rtmpt</servlet-name>

       <url-pattern>/close/*</url-pattern>

    </servlet-mapping>

 

    <security-constraint>

       <web-resource-collection>

           <web-resource-name>Forbidden</web-resource-name>

           <url-pattern>/WEB-INF/*</url-pattern>

       </web-resource-collection>

       <auth-constraint />

    </security-constraint>

 

    <security-constraint>

       <web-resource-collection>

           <web-resource-name>Forbidden</web-resource-name>

           <url-pattern>/persistence/*</url-pattern>

       </web-resource-collection>

       <auth-constraint />

    </security-constraint>

 -->

    <security-constraint>

       <web-resource-collection>

           <web-resource-name>Forbidden</web-resource-name>

           <url-pattern>/streams/*</url-pattern>

       </web-resource-collection>

       <auth-constraint />

    </security-constraint>

</web-app>

(3)  流媒体文件存放路径

WebContentstreams文件夹中。

 

(4)  注意

web工程所需要的red5 jar包需全部导入来自red5安装目录下的lib包,还有根目录下的red5.jar,切不可直接拷贝到lib目录下。项目建立后,打成war包,放到流媒体服务器下的webapps目录下。


客户端代码设计

(1)  测试与服务器端通信情况(字符串的交互)

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

                layout="absolute" fontSize="12"

                width="600" height="400">

<mx:Script>

<![CDATA[

    import mx.controls.Alert;

    private var rtmpURL:String="rtmp://localhost/Red5Test";

    private var conn:NetConnection=new NetConnection();

    private var isConnectSuccess:Boolean=false;

    private var responder:Responder=new Responder(resultFun);

    private function resultFun(object:String):void{

        trace(object);

        result.text=object.toString();

    }

    private function clickConnect(e:MouseEvent):void{

        conn.addEventListener(NetStatusEvent.NET_STATUS,netStatus);

        conn.connect(rtmpURL);

    }

    private function click(e:MouseEvent):void{

        invoke();

    }

    private function invoke():void{

        if(isConnectSuccess){

            conn.call("getit",responder,str.text);//getit 是服务器端方法名称

        }else{

            Alert.show("还没连接到服务器");

        }

    }

    private function netStatus(e:NetStatusEvent):void{

        trace(e.info.code);

        if(e.info.code=="NetConnection.Connect.Success"){

            isConnectSuccess=true;

        }

    }

]]>

</mx:Script>

<mx:Button x="224" y="175" label="调用服务器方法" click="this.click(event)"/>

<mx:TextInput x="129" y="145" id="str" width="212"/>

<mx:Label x="129" y="119" text="显示从服务器端返回的字符" id="result" width="160" fontSize="12"/>

<mx:Button x="129" y="175" label="连接服务器" click="this.clickConnect(event)"/>

</mx:Application>

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值