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" />