`
baiiiuuu
  • 浏览: 42851 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

rded的配置详解

    博客分类:
  • rde5
阅读更多

       RED5将所有的应用程序都放在RED5根目录下的”webapps“目录。你需要为所创建的程序在webapps目录下添加相应的目录。在你的应用程序目录里应该有一个名为”WEB-INF“的目录,用来存放你的程序的配置文件。 在”doc/templates/myapp“目录有一个模板,可以用来帮你完成建立程序的初始工作。

 

      RED5启动的时候,在”webapps”目录的程序文件都是搜索”WEB-INF”的目录下的配置文件来完成配置的。 

    最主要的配置文件是”web.xml”。

   这个文件里包含了以下参数: globalScope:指定全局作用范围 

<context-param>  
    <param-name>globalScope</param-name> 
    <param-value>default</param-value>  
</context-param>   

 

contextConfigLocation:指定配置handler的文件的位置。这些配置文件描述了客户端加入/离开的动作触发后调用的处理方法,作用范围。在描述的时候可以使用通配符来描述多个文件: 

<context-param>  
   <param-name>contextConfigLocation</param-name>  
   <param-value>/WEB-INF/red5-*.xml</param-value>  
</context-param>  

 

locatorFactorySelector:程序的根上下文,通常是”red5.xml”

<context-param>   
    <param-name>locatorFactorySelector</param-name> 
    <param-value>red5.xml</param-value> 
</context-param>  

 

parentContextKey:父级上下文,通常是”default.context”

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

 

log4jConfigLocation:日志配置文件的位置 

<context-param>  
    <param-name>log4jConfigLocation</param-name>   
    <param-value>/WEB-INF/log4j.properties</param-value>  
</context-param> 

 

  webAppRootKey:程序的全局唯一名 

<context-param> 
    <param-name>webAppRootKey</param-name>  
    <param-value>/myapp</param-value> 
</context-param>  

 

       对于每一个Handler配置文件最少需要有三个bean 

Context:用来影射路径到某个作用范围、搜索服务和Handler,它有一个保留的名字”web.context”。 其默认的类为org.red5.server.Context

 <bean id=“web.context“ class=“org.red5.server.Context“  autowire=“byType“ /> 

 

  对于没有一个应用程序只应该有一个Context,但是同一个Context可以被多个作用范围共享  .

Scope:每一个应用程序最少有一个作用范围,用来将handler连接到context和服务器。作用范围可以建立一棵树,每一个客户端连接到树上的一个节点,而共享对象存在于作用范围里。可以把作用范围看作是聊天室或者程序实例。默认的作用范围通常是web.scope,不过这名字是可以任意取的。

      对于bean有以下属性: 

 server:与全局服务器”red5.server”相关。

parent:指定当前作用范围的父范围,通常是”global.scope” context:当前作用范围的服务器上下文,

               一 般指定为”web.context ”

handler:对应当前作用范围的

handler contextPath:用来连接到当前作用范围的路径 

virtualHosts:一个主机名或IP的列表,用来描述虚拟主机的位置,列表项目之间用逗号分隔开。

<bean id=“web.scope“ class=“org.red5.server.WebScope“       
init-method=“register“>   
     <property name=“server“ ref=“red5.server“ />  
     <property name=“parent“ ref=“global.scope“ />  
     <property name=“context“ ref=“web.context“ />  
     <property name=“handler“ ref=“web.handler“ />  
     <property name=“contextPath“ value=“/myapp“ />  
     <property name=“virtualHosts“ value=“localhost, 127.0.0.1“ />  
</bean>   

 为了应用程序配置方便的需要,可以将”contextPath“和”virtualHosts“放到另外一个单独的属性文件里边,而在这里使用变量来表示,为此需要添加一个特别的bean来指定属性文件的位置。

<bean  id=“placeholderConfig“ class=“org.springframework.beans.factory.config.PropertyPlaceholderConfigurer“>  
    <property  name=“location“ value=“/WEB-INF/red5-web.properties“ /> 
</bean>   
假设在属性文件red5-web.properties里有如下的数据: 
1. webapp.contextPath=/myapp  
 2. webapp.virtualHosts=localhost, 127.0.0.1   
则上边的bean的”contextPath“和”virtualHosts“属性即可使用变量来指定值 
 1. <property  name=“contextPath“ value=“http://www.ruyiblog.com/${webapp.contextPath}“ /> 
 2. <property  name=“virtualHosts“ value=“http://www.ruyiblog.com/${webapp.virtualHosts}“ />  

 

对于”contextPath“可以视为是一个根作用范围。你可以在配置好 的”contextPath“路径后边随意添加其他的路径,而连接到这些路径的客户端将动态创建另外的作用范围,这些作用范围使用的是同样的handler,但拥有自己的属性、共享对象和活动流。  handler:每一个上下文需要一个handler来响应用户连接、离开作用范围时的动作,handler实现了很多方法,用户可以调用以达到特定的目的。这个 handler必须实现”org.red5.server.api.IScopeHandler“接口,当然针对共享对象和流的访问还应该实现其他的接口。

 

在”org.red5.server.adapter.ApplicationAdapter“可以找到一个能够用作基类的例子,同时还应该多多参照文档以得到更多细节。 某个作用范围的handler可以如下指定:

<bean id=“web.handler“   class=“the.path.to.my.Application“ singleton=“true“ />  

 

handler的例子 

package the.path.to.my;   
import org.red5.server.adapter.ApplicationAdapter;  

public class Application extends ApplicationAdapter 
{  
     public Double add(Double a, Double b)
     { 
         return a + b; 
     }  
} 

  这里假设使用上边的配置,则在客户端调用的时候使用以下方式

 

   安装flash8,新建flash文件在第一针处动作面板里添加action代码如下图

nc = new NetConnection();   

nc.connect(“rtmp://localhost/myapp“);  

nc.onResult = function(obj) {  

 trace(“The result is “ + obj);  

}   

nc.call(“add“, nc, 1, 2); 

 

返回因该有输出: The result is 3  

 

注:此文转百度文库文章,只是个人重新排版,备注了一下!

分享到:
评论

相关推荐

    Solution Mnanual for Computer system architecture 3rdEd-MorrisMano

    Solution Mnanual for Computer system architecture 3rdEd-MorrisMano

    SmartCamS603rdEd_v1_3.sisx

    SmartCamS603rdEd_v1_3.sisx 手机可以当摄像头用. 手机端

    Mastering EJB 3rdEd

    EJB 3.0版本是EJB规范的一个重大升级,引入了许多简化开发过程的新特性,如注解驱动的配置、增强的生命周期管理、轻量级实体Bean以及更强大的消息驱动Bean等。 ### 注解驱动的配置 在EJB 3.0中,注解被广泛用于...

    Mastering EJB 3rdEd.pdf

    - **简化API**:EJB 3.0引入了更简洁的注解,减少了XML配置文件的使用,使得开发过程更为直观。 - **实体Bean的注解**:实体Bean可以通过`@Entity`注解来声明,同时`@Id`注解用于标识主键。 - **Java Persistence...

    java7Beginners3rdEd.zip

    这个压缩包"java7Beginners3rdEd.zip"包含了与《Java 7初学者指南》第三版相关的源代码,这是一本针对初学者的教程,旨在帮助他们理解和掌握Java 7的核心概念。 1. **自动资源管理(Automatic Resource Management,...

    Y_Browser_100_5_3rdEd.SIS

    是S60平台上的文件管理软件,支持打开信息文件夹、收件箱、别人蓝牙发送的特殊文件可以在这里进行复制操作

    The C Programming Language 2ed_书_

    《C程序设计语言第二版》是一本经典的编程书籍,由Brian W. Kernighan和Dennis M. Ritchie合作编写,被广泛称为“K&R”手册。这本书是C语言学习者的必读之作,尤其对于那些想要深入理解C语言基础概念和技术的初学者...

    inventwithpython3rded:“使用Python发明自己的计算机游戏,第三版”的源文本

    inventwithpython3rded “使用Python发明自己的计算机游戏,第三版”的源文本和翻译工作的回购。 给所有翻译者的提示:如果您有任何疑问或想知道下一步该怎么做,请立即与我联系。 为什么是第三版? 第二版于...

    python for s60

    PythonForS60_1_4_5_3rdEd.sis PythonScriptShell_1_4_5_3rdEd.SIS

    Y-browser for S60v3 多语言版 089

    Y-browser for S60v3 多语言版的介绍: Y-管理器是目前为止功能最为强大的文件管理软件 Y_Browser_089_2_3rdEd.SIS

    时间序列分析代码(使用R注解详细).R

    通过整理Forecasting Principles and Practice (2rded)内容,将里面的所有代码进行了归类,全部可以操作执行,边操作边解释,是目前非常全面的用于时间序列分析的R语言脚本。

    VMware15.5安装centos8.1的最全教程及物理内存不足问题

    5.linux版本选择,因为VMware15.5版本选择里面没有centios8.1,这里我们选择Rded Hat Enterprise Linux 8 64位 6.给虚拟机命个名字,选择虚拟机存储的位置 7.虚拟机处理器设置(根据自己的电脑配置即行设置) 8....

    HelloWorld3rdEdSampleCode.zip

    首先,"HelloWorld3rdEd"暗示这是一套源自第三版的教程或书籍的示例代码,通常这样的资源都会覆盖基础到进阶的各种主题,有助于系统性地学习。"SampleCode"则表明这些是实际运行的代码片段,通过实践来巩固理论知识...

    PyS60-开源

    "PythonForS60_SDK_3rdEd"这个文件名可能指的是PyS60的第三版SDK(Software Development Kit)。SDK通常包含开发工具、库文件、文档和示例代码,是开发者开始PyS60编程的基础。通过这个SDK,开发者可以设置开发环境...

    计算机学习资料大全.pdf

    - **链接**:[The C++ Programming Language](http://www.codeguru.cn/cpp/TheC++ProgrammingLanguage3rdEd) - **简介**:由C++之父Bjarne Stroustrup编写的权威指南,全面介绍了C++语言。 - **适用人群**:适合所有...

Global site tag (gtag.js) - Google Analytics