`
kaka99
  • 浏览: 51158 次
  • 性别: Icon_minigender_1
  • 来自: AC
社区版块
存档分类
最新评论

RED5 — 配置文件详解

    博客分类:
  • red5
阅读更多


Red5 是建立在Jetty6(servlet engine) , Mina (networking)基础之上的,并通过使用Spring框架将起整合起来的.因此我们需要有一些配置文件.我们可能的通过载入 properties 文件来简化配置,因此用户不需要深入了解 XML.
该文档就是要新手们去熟悉这些配置文件,其中一些需要改动,一些不必关心.
Jetty Config
———————————-

一、/conf/jetty.xml
servlet引擎主配置文件,如果你的应用程序是放在 webapps 文件中的,你就不需要更改该配置文件.该文件非常象一把瑞士军刀.你可以任意排序.关于其更多的详细信息参见 jetty 官方相关文档.
二、/conf/web-default.xml
缺省的web xml,其在WEB-INF/web.xml之前使用,它使得将servlets添加到所有的应用程序中.可以将其理解为一个webapp的模板文件.
三、/conf/keystore
文件存储指纹.
四、/conf/realm.properties
web的归属,用户,密码等设置.
Red5 Server配置文件
———————————-
一、/conf/red5.properties
  通过修改该文件我们就可以很轻松的指定端口,配置参数等,而不必去编辑xml文件.我们试图将所有的公用配置放到该文件中.
二、/conf/red5.xml
  连接上下文.不知道是什么意思么?呵呵,不用担心,你不需要编辑该文件,除非你要添加另外一个全局的上下文.你可能在管理Red5的时候才会做这样的事情.
三、/conf/red5-common.xml
用来配置上下文环境树的根部,所有的服务都可以用于子环境.如果你想让在全局上下文环境中分享你的服务的话,你就需要修改该文件.99%的用户不需要编辑该文件.
四、/conf/log4j.properties
设置日值层,和输出文件等等.该文件作用于整个服务器.除非你要在 webapp 中的 WEB-INF 文件夹中使用 log4j 配置替代该文件,那么你就需要修改该文件.
五、/conf/red5-net.xml
安装 Mina 和启动 Jetty. 用户不需要修改该文件,类似端口的设置需要通过 red5.properties 文件配置.
六、/webapps/red5-default-global.xml
这是全局的上下文,大部分的服务器只需要一个,但是在安全的管理虚拟主机的时候需要将全局上下文分离.如果你想要在应用程序中分享服务的时候,将其加到这里.该上下文可以操作类似客户端注册和全局作用域.
Webapp配置文件
———————————-
在默认的情况下, Red5 将所有的应用程序存放在根目录的”Webapps“目录下面.因此在创建一个新的应用程序之前,首先需要在这个目录中创建一个子目录.习惯上这个子目录的名字应该和马上创建的应用程序的名字是一样的.
在你的新应用程序中,需要一个”WEB-INF“的文件夹用来存放关于使用类情况的配置文件.你可以使用Red5提供的一个模板,它可以在”doc/templates/myapp“文件夹中找到.
在Red5启动的时候,所有文件夹中的配置文件都会搜索到.
在Red5提供的模板中,WEB-INF下一共有四个配置文件,分别是web.xml,red5-web.xml,red5-web.properties和log4j.properties。下面主要详解一下前两个文件的功能。
一、Web.xml。
主要的配置文件,它包含了如下参数:
1. globalScope:
“globalScope”为全局作用域,它可以使用默认的设置.

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

 
2. contextConfigLocation
设置应用程序中控制文件的名称.这些控制文件列出了应用程序连接或断开客户端的类,同时也提供客户端可以调用的方法的类.
控制文件还设定了这些类的有效范围.
在这个路进中还可以使用通配符,从而可以包含进来多个文件.
以下代码就是使用了通配符的代码,把WEB-INF/目录下所有文件名前面是“red5-”字样的xml文件包含进来,模板中是把red5-web.xml文件包含了进来。

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

 

3. locatorFactorySelector
指定根应用程序上下文配置文件通常是”red5.xml”::

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

 
4. parentContextKey
父上下文的名字,通常是”default.context”::

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

 

5. log4jConfigLocation
指定子log系统的路径。模板中其实是把log4j.properties指定为log系统的路径。

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

 

6. webAppRootKey
指定应用程序唯一的名称为/myapp

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

 

二、red5-web.xml。
配置文件,每一个控制配置文件都至少包括如下三种Bean:
1. Context
这个Context bean有个预留的名字”web.context”,它用来将路径放入域中,同时查找服务和控制器。默认的类是”org.red5.server.Context”.
具体代码如下:
<bean id=”web.context” class=”org.red5.server.Context” autowire=”byType” />
每个应用程序只能有一个Context。然而这个Context能够跨多个域共享。
2. 领域/作用域/作用范围(Scope)
每一个应用程序至少有一个Scope,这个Scope将控制器(Handler)连接到了Context和Server.这个Scopes用来建造一 个树结构,客户端能够连接到这个树上的任何一个节点和共享对象(例如共享对象或者实时流).你可以将Scope看作是一个房间或者实例.
默认的Scope通常有个名字”web.scope”,但是这个名字可以任意的选择.
这个Bean有如下的属性.
“server“—-设置全局的服务器域”red5.server”.
“parent“—-设置父域,通常是”global.scope”.
“context“—-指当前域,使用上面提到的”web.context”
“handler“—-当前域的控制器(Handler,下面将会提到).
“contextPath“—-连接当前域的路径.
“virtualHosts“—-用逗号分割开当然域(scope)运行的一组主机名或者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”的值转移到一个单独的properties文件,然后用参数表示.如果是这样的话,你就需要另外的一个Bean::

<bean id=”placeholderConfig” class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>
<property name=”location” value=”/WEB-INF/red5-web.properties” />
</bean>

 

假设一个”red5-web.properties”文件包含如下数据::
webapp.contextPath=/myapp
webapp.virtualHosts=localhost,127.0.01
那么,在Scope中的参数将会变成如下样子::

<property name=”contextPath” value=”${webapp.contextPath}” />
<property name=”virtualHosts” value=”${webapp.virtualHosts}” />

 

这个”contextPath”将会被看作域的”根(root)”.当需要动态创建扩展域的时候,你可以在这个路径后边添加新的元素.
这个额外域将使用同一个控制器(Handler),但是他们都拥有自己独立的属性,共享对象和实时流.
3. 控制器(Handlers)
每一个Context都需要一个控制器(Handler),它实现一个方法,这个方法将在一个客户端连接这个域(Scope)时触发.这个控制器需要 实现的接口是:”org.red5.server.api.IScopeHandler”,然而如果你想控制访问共享对象或者流,你也可以实现其它接口.
有一个”org.red5.server.adapter.ApplicationAdapter”作为一个基础类可以在类库中找到,这个类就是一个简单实现的例子.更多详细信息请查阅javadoc文档.
这个Bean作为一个域的控制器要进行如下配置::
<bean id=”web.handler” class=”the.path.to.my.Application” singleton=”true” />
这个ID的参数就是上面提到的域(scope)设置.
4. 控制器实例:用下面几行代码实现一个简单的控制器::

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;
}
}

 

假设已经经过了上面的配置,你可以通过如下的脚本来调用这个方法.

nc = new NetConnection();
nc.connect(”rtmp://localhost/myapp”);
nc.onResult = function(obj){
trace(”This result is ” +obj);
}
nc.call(”add”,nc,1,2);

 

输出的结果如下:
The result is 3;
关于控制器的建立方法,请参考《如何由RED5的“WIN安装版”建立应用程序》一文中的 Application.java 的建立与编译、执行。
三、red5-web.properties。
存放red5-web.xml中参数”contextPath“和”virtualHosts“的文件。该文件可以被red5-web.xml 轻松的使用,也会被red5 jetty configurator读取从而设置ebapp.virtualHosts和webapp.contextPath.注意不同的servlet引擎要求 的配置文件不同,要酌情决定.
四、log4j.properties。
允许你为每个 webapp 分别设置日志等级等等。该文件也会被 spring 自动载入。一般不用去修改它,因为在red5的安装目录下的 conf 文件夹下也有一个相同的文件,该文件已经作用于整个服务器,他的作用是设置了日值层,和输出文件等等。


本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/805

分享到:
评论

相关推荐

    RED5配置文件详解

    Red5 是建立在Jetty6(servlet engine) , Mina (networking)基础之上的,并通过使用Spring框架将起整合起来的.因此我们需要有一些配置文件.我们可能的通过载入properties 文件来简化配置,因此用户不需要深入了解...

    MapReduce详解包括配置文件

    在MapReduce刚开始的时候,会先对文件进行切片(Split)处理。需要注意的是,切片本身是一种逻辑切分而不是物理切分,本质上就是在划分任务量,之后每一个切片会交给一个单独的MapTask来进行处理。默认情况下,Split和...

    低清版 大型门户网站是这样炼成的.pdf

    6.2.3 spring 2.5配置文件详解 367 6.2.4 bean的作用域与生命周期 374 6.2.5 基于xml方式的bean装配 376 6.2.6 基于annotation方式的bean装配 381 6.2.7 基于xml方式的aop实现 386 6.2.8 基于annotation方式的...

    CentOS6.5下Tomcat7 Nginx Redis配置步骤教程详解

    所有配置均在一台机器上完成,部署拓扑信息如下: 注意:由于Redis配置对jar包和tomcat版本比较严格,请务必使用...1. 在server.xml文件中,修改tomcat2的端口,总共需要修改3处,分别是8080、8005和8009,分别修改为90

    ORACLE 10.2.0.1 RAC for RedHat AS4 安装(详解)

    2.6 设置Oracle用户登录配置文件(在所有节点上执行) 29 2.7 配置网络设置(在所有节点上执行) 32 2.8 为用户等效性配置 SSH (在所有节点上执行) 34 2.9 配置 hangcheck-timer 内核模块(在所有节点上执行) 36 ...

    Linux swatch命令用法详解

    然而在Red Hat Linux的预设用户根目录下并没有.swatchrc配置文件,您可将/usr/doc/swatch-2.2/config_files/swatchrc.personal文件复制到用户根目录下的.swatchrc,然后修改.swatchrc所要监控的事件及执行的动作。...

    企业级Linux服务攻略

    1.2.6 网卡配置文件 1.2.7 setup命令 1.2.8 修改resolv.conf设置DNS 1.3 网络环境测试 1.3.1 ping命令检测网络状况 1.3.2 netstat命令 1.3.3 nslookup测试域名解析 1.4 本章习题 第2章 Samba服务 2.1 Samba原理 ...

    火龙果(redpitaya)开发板常用接口C语言开发指南(十一)——串口通信详解(持续更新中)

    火龙果(redpitaya)开发板常用接口C语言开发指南(十一)——串口通信详解(持续更新中)串口通信串口及使用模块简介red pitaya串口收发红外译码数据 ——本人为《火龙果实战指南——搭建基于Zynq处理器的测量仪器...

    RHEL6启动原理和故障排除

    Linux启动过程详解,影响启动的配置文件,常见的启动故障排除,救援模式的使用,Live CD的使用

    入门学习Linux常用必会60个命令实例详解doc/txt

    不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级...

    Linux kbdconfig命令用法详解

    kbdconfig实际上是修改/etc/sysconfig/keyboard的键盘配置文件。 语法kbdconfig [--back][--test] 参数: –back 执行时将预设的Cancel按钮更改为Back按钮。 –test 仅作测试,不会实际更改设置。 实例 键盘设置: ...

    Redis服务器的启动过程分析

    2.重置服务器Save参数(具体下文详解)和加载配置文件 3.初始化服务器 4.加载数据库 5.开始网络监听 一,初始化Redis服务器全局配置。这一步骤主要是主要是根据Redis.h中设置的Static值来初始化Redis服务器配置,...

    黑客反汇编揭秘(第二版).part2.rar

    12.3.2 通过扩展文件的最后分区来感染文件 222 12.3.3 通过压缩部分原始文件 12.3.3 而感染文件 224 12.3.4 通过扩展文件的代码分区而感染文件 228 12.3.5 通过下移代码分区而感染文件 231 12.3.6 通过创建定制...

    FPGA读写OV5640摄像头显示例程 Verilog逻辑源码Quartus工程文件+文档说明.zip

    FPGA读写OV5640摄像头显示例程 Verilog逻辑源码Quartus工程文件+文档说明,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 本实验将采用 500 万像素的 OV5640 摄像头模组(模块型号:AN5640)为大家显示更...

    CMD命令行高级教程

    [/color] 五、参数 /F [color=red]迭代及文件解析[/color] 第三章 FOR 命令中的变量 [color=darkgreen] 一、 ~I - 删除任何引号("),扩展 %I 二、 %~fI - 将 %I 扩展到一个完全合格的路径名 三、 %~dI - 仅将 %I ...

    leetcode-[removed]前攻城狮从零入门算法的宝藏题库,根据算法大师的经验总结了100+道LeetCode力扣的经典题型JavaScript题解和思路。一起加油

    提供了.vscode配置文件,在vscode中选择“小爬虫”图标,点击启动程序,即可启动断点调试。 思路 思路会记录在本仓库的问题,按标签进行分类。某些想查看“ DFS”分类下的问题,然后选择标签进行筛选即可。 目录 ...

    服务器系统安全分析报告.doc

    服务器系统安全详解 一、Linux 篇 1.发行版:Red Hat Enterprise Linux 6.0 2.特点: 1)完全免费 2)高效安全稳定 3)支持多种硬件平台 4)支持多任务、多用户 3.对root登录进行严格限制 1)用"root"身份登录不是一个好...

    html入门到放弃笔记

    5、设置 body text为red,bgcolor为yellow 3、文本 1、特殊文本的实现 页面的空格以及一些特殊字符需要通过转义字符的方式体现 1、&nbsp; 表示一个空格 2、&lt; 表示 &lt; 3、&gt; 表示 &gt; 4、&copy; 表示© ...

Global site tag (gtag.js) - Google Analytics