Red 5研究と蓄積(一)
この間Red 5を研究しようとしたが、ネット上の多くの例や配置方法が通じないことが分かった.
私のRed 5バージョンの問題なのかJDKコンパイルの問題なのか分かりません
まず私の環境JDK 1についてお話しします.6 MyEclipse7.5 Red 5 0.9.0 windowsインストール版
インストールは特に何も言うことはありません.もしあなたがサービスに設定したいなら、影響は大きくありません.私は通常、Red 5を手動で起動します.
まず基本的な接続から始めます
Java側MyEclipseの新しいWebエンジニアリングPathを書いてRed 5 libフォルダの下のjarに参加しますservlet*.jarとjsp*.JAr外のred 5を忘れないでください.jar
Javaクラスを新規作成するには、一般的にApplicationと名付けられ、ApplicationAdapter Javaコードを継承します.
接続上のログの印刷とコンソールの文字列の印刷にほかならない.
次にFlex端子
最も重要なプロファイルを見てみましょう
web.xml
red5-web.xml
red5-web.properties
Red 5のwebappsフォルダの下にプロジェクトを公開してあなたの定義した名前に名前をつけますここで私のはmyDemoです
ここまでで一番簡単なデモが完成しました
私のRed 5バージョンの問題なのかJDKコンパイルの問題なのか分かりません
まず私の環境JDK 1についてお話しします.6 MyEclipse7.5 Red 5 0.9.0 windowsインストール版
インストールは特に何も言うことはありません.もしあなたがサービスに設定したいなら、影響は大きくありません.私は通常、Red 5を手動で起動します.
まず基本的な接続から始めます
Java側MyEclipseの新しいWebエンジニアリングPathを書いてRed 5 libフォルダの下のjarに参加しますservlet*.jarとjsp*.JAr外のred 5を忘れないでください.jar
Javaクラスを新規作成するには、一般的にApplicationと名付けられ、ApplicationAdapter Javaコードを継承します.
public class Application extends ApplicationAdapter {
private Logger log = Red5LoggerFactory.getLogger(Application.class,"myDemo");
private IScope appScope;
private IServerStream serverStream;
public Application(){
log.info("myDemo created");
System.out.println("myDemo created");
}
public boolean appStart(IScope app) {
log.info("myDemo appStart");
System.out.println("myDemo appStart");
this.appScope = app;
return true;
}
public boolean appConnect(IConnection conn, Object[] params) {
log.info("myDemo appConnect");
System.out.println("connect");
return true;
}
public void appDisconnect(IConnection conn) {
log.info("myDemo appDisconnect");
if((this.appScope == conn.getScope()) && (this.serverStream != null)){
this.serverStream.close();
}
super.appDisconnect(conn);
}
}
接続上のログの印刷とコンソールの文字列の印刷にほかならない.
次にFlex端子
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="Red5 Connect Test" creationComplete="appinit()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;
var command:String="rtmp://localhost/myDemo";// red5
var mync:NetConnection=new NetConnection();
var client1:Object = new Object();
function netStatusHandler(sevt:NetStatusEvent):void{
}
function appinit(){
mync.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
}
function serverConnect():void{
out_txt.text="Connectting ... ...";
client1.clientMethod = this.clientMethod;
mync.client = this.client1;
mync.connect(command);
trace("serverConnect:"+command);
}
]]>
</mx:Script>
<mx:Style>
WindowedApplication
{
background-color:"0xffffff";
background-alpha:"0.5";
}
</mx:Style>
<mx:Label y="100" text=" : " horizontalCenter="0" fontSize="12" fontWeight="normal" id="out_txt" condenseWhite="true" height="150"/>
<mx:Button y="254" label=" Red5" fontSize="11" fontWeight="normal" horizontalCenter="0" click="serverConnect()"/>
</mx:WindowedApplication>
最も重要なプロファイルを見てみましょう
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>myDemo</display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>/myDemo</param-value>
</context-param>
<listener>
<listener-class>org.red5.logging.ContextLoggingListener</listener-class>
</listener>
<filter>
<filter-name>LoggerContextFilter</filter-name>
<filter-class>org.red5.logging.LoggerContextFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoggerContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>rtmpt</servlet-name>
<servlet-class>org.red5.server.net.rtmpt.RTMPTServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/fcs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/open/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/close/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/send/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rtmpt</servlet-name>
<url-pattern>/idle/*</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>Forbidden</web-resource-name>
<url-pattern>/streams/*</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
</web-app>
red5-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd">
<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/red5-web.properties" />
</bean>
<bean id="web.context" class="org.red5.server.Context"
autowire="byType" />
<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="${webapp.contextPath}" />
<property name="virtualHosts" value="${webapp.virtualHosts}" />
</bean>
<bean id="web.handler" class="org.red5.demos.oflaDemo.Application" />
<bean id="demoService.service" class="org.red5.demos.oflaDemo.DemoService" />
<bean class="org.springframework.scripting.support.ScriptFactoryPostProcessor"/>
</beans>
red5-web.properties
webapp.contextPath=/myDemo
webapp.virtualHosts=*, localhost, localhost:8088, 127.0.0.1:8088
Red 5のwebappsフォルダの下にプロジェクトを公開してあなたの定義した名前に名前をつけますここで私のはmyDemoです
ここまでで一番簡単なデモが完成しました