`

配置Red5详解(转)

    博客分类:
  • flex
阅读更多


[url=]RED5[/url] 将所有的应用程序都放在RED5根目录下的"webapps"目录。你需要为所创建的程序在webapps目录下添加相应的目录。在你的应用程序目录里应 该有一个名为"WEB-INF"的目录,用来存放你的程序的配置文件。在"doc/templates/myapp"目录有一个模板,可以用来帮你完成建 立程序的初始工作。
RED5启动的时候,在"webapps"目录的程序文件都是搜索"WEB-INF"的目录下的配置文件来完成配置的。
最主要的配置文件是"web.xml"。这个文件里包含了以下参数:
globalScope:指定全局作用范围

  1. <context-param>
  2.     <param-name>globalScope</param-name>
  3.     <param-value>default</param-value>
  4. </context-param>
复制代码

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

  1. <context-param>
  2.     <param-name>contextConfigLocation</param-name>
  3.     <param-value>/WEB-INF/red5-*.xml</param-value>
  4. </context-param>
  5. locatorFactorySelector:程序的根上下文,通常是"red5.xml"
  6. <context-param>
  7.     <param-name>locatorFactorySelector</param-name>
  8.     <param-value>red5.xml</param-value>
  9. </context-param>
  10. parentContextKey:父级上下文,通常是"default.context"
  11. <context-param>
  12.     <param-name>parentContextKey</param-name>
  13.     <param-value>default.context</param-value>
  14. </context-param>
  15. log4jConfigLocation:日志配置文件的位置
  16. <context-param>
  17.     <param-name>log4jConfigLocation</param-name>
  18.     <param-value>/WEB-INF/log4j.properties</param-value>
  19. </context-param>
  20. webAppRootKey:程序的全局唯一名
  21. <context-param>
  22.     <param-name>webAppRootKey</param-name>
  23.     <param-value>/myapp</param-value>
  24. </context-param>
复制代码

对于每一个Handler配置文件最少需要有三个bean
Context:用来影射路径到某个作用范围、搜索服务和Handler,它有一个保留的名字"web.context"。 其默认的类为org.red5.server.Context

  1. <bean id="web.context" class="org.red5.server.Context"
  2.      autowire="byType" />
复制代码

对于没有一个应用程序只应该有一个Context,但是同一个Context可以被多个作用范围共享
Scope:每一个应用程序最少有一个作用范围,用来将handler连接到context和服务器。作用范围可以建立一棵树,每一个客户端连接到树上的 一个节点,而共享对象存在于作用范围里。可以把作用范围看作是聊天室或者程序实例。默认的作用范围通常是web.scope,不过这名字是可以任意取的。
对于bean有以下属性:
server:与全局服务器"red5.server"相关。
parent:指定当前作用范围的父范围,通常是"global.scope"
context:当前作用范围的服务器上下文,一般指定为"web.context"
handler:对应当前作用范围的handler
contextPath:用来连接到当前作用范围的路径
virtualHosts:一个主机名或IP的列表,用来描述虚拟主机的位置,列表项目之间用逗号分隔开。

  1. <bean id="web.scope" class="org.red5.server.WebScope"
  2.      init-method="register">
  3.     <property name="server" ref="red5.server" />
  4.     <property name="parent" ref="global.scope" />
  5.     <property name="context" ref="web.context" />
  6.     <property name="handler" ref="web.handler" />
  7.     <property name="contextPath" value="/myapp" />
  8.     <property name="virtualHosts" value="localhost, 127.0.0.1" />
  9. </bean>
复制代码

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

  1. <bean id="placeholderConfig"     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  2.     <property name="location" value="/WEB-INF/red5-web.properties" />
  3. </bean>
复制代码

假设在属性文件red5-web.properties里有如下的数据:
webapp.contextPath=/myapp
  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可以如下指定:

  1. <bean id="web.handler"
  2.      class="the.path.to.my.Application"
  3.      singleton="true" />
复制代码

其中"id"属性是上边定义的作用范围里指定的。
如果你不需要任何服务端的逻辑处理,可以使用Red5默认提供的handler

  1. <bean id="web.handler"
  2.      class="org.red5.server.adapter.ApplicationAdapter"
  3.      singleton="true" />
  4. handler的例子
  5.   package the.path.to.my;
  6.   import org.red5.server.adapter.ApplicationAdapter;
  7.   public class Application extends ApplicationAdapter {
  8.     public Double add(Double a, Double b){
  9.       return a + b;
  10.     }
  11.   }
复制代码

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

  1. nc = new NetConnection();
  2.   nc.connect("rtmp://localhost/myapp");
  3.   nc.onResult = function(obj) {
  4.     trace("The result is " + obj);
  5.   }
  6.   nc.call("add", nc, 1, 2);
复制代码

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

分享到:
评论

相关推荐

    red5 配置详解

    本文将详细介绍如何配置Red5,以便发布和使用视频流。 首先,创建Red5应用程序涉及到以下几个步骤: 1. **创建应用程序目录**:在Red5的根目录下的"Webapps"文件夹中创建一个子目录,此子目录名应与你的应用程序...

    关于red5配置详解

    关于Red5配置详解 Red5是一款开源的流媒体服务器,它允许开发者创建实时的音频、视频流,并且支持录制、播放、互动等多媒体应用。在安装Red5之后,配置是确保其正常运行的关键步骤。本篇文章将深入探讨Red5的配置...

    RED5配置文件详解

    本文档旨在帮助初学者理解和配置RED5服务器的关键文件,以确保顺利运行和自定义设置。 ### Jetty Config 1. **/conf/jetty.xml**:这是Jetty servlet引擎的主要配置文件,通常不需要修改,特别是当你的应用程序...

    red5 安装入门配置详解

    - Red5的配置主要通过修改`conf`目录下的各种配置文件完成,如`red5.properties`用于全局配置,`log4j.properties`用于日志管理,`web.xml`定义Web应用等。理解这些配置文件的内容和用途是深入使用Red5的关键。 4....

    RED5安装与配置 RED5

    ### RED5安装与配置详解 ...通过上述步骤,你可以成功配置RED5服务器,并根据实际需求调整各种参数来满足不同场景的需求。RED5的强大之处在于其灵活性和可扩展性,通过合理的配置可以实现复杂的应用场景。

    基于 Red5 的流媒体服务器的搭建和应用

    通过编辑这些文件可以配置Red5的基本参数,如监听端口、最大连接数等。 #### 四、Red5应用场景 ##### 4.1 即时通信系统 Red5可以作为即时通信系统的后台服务器,实现文本消息、语音通话等功能。 ##### 4.2 远程...

    RED5安装与配置

    ### RED5安装与配置详解 #### 一、RED5简介 RED5是一款开源的媒体服务器,主要用于实时流媒体传输和互动应用开发。它支持多种协议和技术标准,如RTMP、WebRTC等,使得开发者能够轻松地构建视频直播、在线教育、...

    red5 与 tomcat项目集成

    6. **配置文件拷贝**:将 Red5 的 `src\conf\war` 目录下的其他文件复制到现有项目的源码目录下,确保所有必需的配置文件(如 `beanRefContext.xml`, `defaultContext.xml`, `red5-common.xml`, `red5-core.xml`)都...

    Red5 + MyEclipse +Tomcat配置

    本篇文章主要介绍如何在MyEclipse环境下配置Red5服务器,并使其与Tomcat服务器协同工作,最终实现Red5的Demo成功运行。Red5是一款开源的流媒体服务器,能够提供音视频流传输服务,广泛应用于在线教育、直播等领域。 ...

    Red5+的安装和使用

    配置Red5的步骤如下: 1. **获取Red5**:可以从官方站点下载Red5的安装包或通过SVN获取最新源代码。如果通过SVN,需要先安装Eclipse的SVN插件以便获取代码。 2. **环境准备**:确保已经安装了Eclipse、Apache Ant...

    Red5的使用方法和具体功能介绍

    - **`red5-web.xml`**:主要配置Red5服务器的行为,如端口设置、连接超时等。 - **`web.xml`**:是Web应用程序的主要配置文件,用于定义Servlet和其他Web组件。 #### 四、启动与停止Red5 在安装和配置完成后,可以...

    Red5 0.9与现有tomcat项目整合修正版

    ### Red5 0.9与现有Tomcat项目整合修正版详解 #### 一、概述 在集成Red5服务器与现有的Tomcat项目时,通常会遇到一些兼容性和配置问题。本文档详细介绍了如何将Red5 0.9版本与现有的Tomcat项目进行整合,并对之前...

    red5入门--环境搭建

    通过上述步骤,我们不仅可以成功安装并配置Red5服务器,还能处理一些常见的问题和警告,同时还可以通过安装示例应用来加深对Red5的理解和掌握。对于初次接触Red5的开发者来说,这是一个非常实用且系统的入门指南。

    red5+flex小程序

    7. **配置Red5**:配置Red5涉及到更改配置文件,如将`web.handler`的class属性设置为自定义的Application类,删除不必要的bean,以及修改`webAppRootKey`的值以指定正确的服务路径。 8. **NetConnection对象**:在...

    Red5 War.pdf 官方英文参考文档

    - 文档中提供了一些示例源代码,以帮助理解如何创建和配置Red5应用程序。 #### 五、额外的Web配置 - 可能还需要进行额外的Web配置,以满足特定的需求或解决兼容性问题。 #### 六、重命名ROOT.war为Red5.war - ...

    red5-server-1.0.6.zip 流媒体服务器

    **Red5流媒体服务器详解** Red5是一款开源的流媒体服务器,主要负责处理实时的音频、视频流数据,广泛应用于在线直播(live)场景。它支持多种协议,如RTMP(Real Time Messaging Protocol)、HLS...

    Red5 oflaDemo程序

    **Red5 oflaDemo程序详解** Red5是一款开源的流媒体服务器,主要功能是支持实时传输音频、视频和数据。它的出现为开发者提供了一个低成本、可定制化的替代方案,特别是对于那些希望在自己的应用程序中集成流媒体...

Global site tag (gtag.js) - Google Analytics