译:如何配置Red5应用程序

HOWTO-NewApplications-WAR_zh_CN.txt

--------------------------------------- 如何配置Red5应用程序 WAR附录 ---------------------------------------

译者的话: Red5的资料有点乱,没有什么头绪。但是把这些资料翻译成中文多少会有一些帮助,即使有时翻译的内容也不是那会容易看懂。如果大家有时间,也希望能够选择一些资料翻译出来,然后发布到OpenRed5中文社区http://www.OpenRed5.com,让我们大家共同进步。

序言 ========================== 这个文档描述了Red5应用在使用WAR实现时如何配置。在此版本的Red5,J2EE容器没有包含在Red5中,因此它的配置会有所不同。此文档假定应用程序WAR包已经展开。(译注:这里的J2EE容器是指提供J2EE运行环境的软件,如Tomcat,JBoss)

应用程序目录 ========================== 一个应用程序WAR包已经用WAR包的名称正常的展开到一个目录下。 例:red5.war展开到Tomcat服务器的tomcat/webapps/red5目录下。在一个标准的Red5安装中,所有的应用都被存储在webapps目录下它们自己的目录中。

配置 ========================== 此WAR版本保存所有的应用程序定义到以"-context.xml"为后缀的Spring配置文件中。如果你的应用名为ofla,那么它的配置文件就是"ofla-context.xml"。此上下文文件会在服务启动时自动加载。(译注:上下文亦可称作环境)

将被加载的主配置文件为"web.xml"。它包含下列参数:

globalScope -------------------------- 全局作用域,它可以使用默认的设置

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

contextConfigLocation -------------------------- 为此应用指定handler配置文件名。handler配置文件关联到类,用于告知应用程序关于连接/断开客户端,提供方法供客户端调用。 handler配置文件为这些类指定作用域层次。 路径名可以使用通配符来加载多个文件。

        <context-param>                 <param-name>contextConfigLocation</param-name>                 <param-value>/WEB-INF/applicationContext.xml, /WEB-INF/red5-common.xml, /WEB-INF/red5-core.xml, /WEB-INF/*-context.xml</param-value>         </context-param>

listener (start-up / shutdown) -------------------------- 参考此应用程序上下文监听器servlet,此技术获取Standalone.class的位置。(译注:这里原文亦不很明确,有一点难以理解了)

        <listener>                 <!-- 模拟 org.springframework.web.context.ContextLoaderListener -->                 <listener-class>org.red5.server.MainServlet</listener-class>         </listener>

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>

Handler配置 ========================== 每个handler配置文件必需包含最少三个类

上下文 -------------------------- 默认上下文类使用保留名'web.context',通常用于映射路径到作用域,参考service和handler。默认的类为'org.red5.server.Context'

默认的设置为;

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

每个应用程序仅能拥有一个上下文,而且必需遵循此命名规范'<application name>.context',这样就不会引起冲突。应用程序上下文可以在所有的作用域内共享。(译注:这里的Application Scope与WEB应用中的Application Scope是同样的意思)

作用域 -------------------------- 每个应用都需要最少一个作用域,将handler链接到上下文和服务器中。作用域可以用于构建一个树,客户端可以在这个作用域范围内连接到每一个节点和共享对象(如作用域内的共享对象或实时流)。

默认的作用域名通常为'web.scope',而且必需遵循此命名规范'<application name>.scope',这样就不会引起冲突。

这个类有以下属性:

  'server'     参考全局服务`red5.server`。   'parent'     参考上级作用域,通常为`global.scope`。   'context'     此作用域的服务上下文,使用刚才提到的`web.context`。   'handler'     此作用域的handler。   'contextPath'     连接到此作用域的路径。   'virtualHosts'     此作用域运行所在的主机名或IP地址列表(主机名或IP地址之间用逗号分隔)。此版本我们没有控制主机,它由服务器完成(处理)。

这是一个定义的例子:

    <bean id="ofla.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="ofla.context" />         <property name="handler" ref="ofla.handler" />         <property name="contextPath" value="/oflaDemo" />         <property name="virtualHosts" value="localhost, 127.0.0.1" />     </bean>

配置中指定'contextPath'可以看作是作用域的root路径。当需要连接到动态生成的扩展作用域时,你可以在配置路径后添加额外的元素。

这些扩展作用域都使用同样的handler,但是拥有它们自己的属性、共享对象和实时流。

Handlers -------------------------- 每一个上下文都需要一个handler,当一个客户端连接到作用域时实现被调用的方法,包含可以被客户端调用的额外的方法。这些handler需要实现指定的接口'org.red5.server.api.IScopeHandler',当然,你也可以实现其它接口来控制和访问共享对象或者流。

一个实现的例子:可以使用一个基础类'org.red5.server.adapter.ApplicationAdapter'。详细内容请查阅API文档。

作用域handler类设置为:

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

`id`属性参考作用域定义

如果你无需特定的服务端逻辑,你可以使用Red5提供的默认应用程序handler

    <bean id="web.handler" class="org.red5.server.adapter.ApplicationAdapter" singleton="true" />

你可能感兴趣的:(应用程序)