*Red5 で HelloWorld [#z675de0e]
#contents2_1(compact=true,depth=1-2)

&br;
*内容 [#odab3aa2]
-&color(red){Java は殆どやったことないので間違ってるかもしれません。ごめんなさい。};
-flash から java のメソッドを呼ぶ。
-red5-0.8.0.tar.gz を解凍したフォルダ内の doc/HOWTO-NewApplications.txt を参考にしました。



&br;
*サーバサイド側(Java)作成 [#a2ba8897]

**1) 確認 [#lf389d77]
red5 フォルダ以下に、red5-0.8.0.tar.gz を解凍したファイルがあるものとする。


**2) テンプレートをコピーする [#y38cf0f0]
red5 フォルダの /doc/templates/ に、テンプレートとなるファイルがあるので、それを webapps フォルダにコピーして使う。&br;
今回は、sample1 プロジェクトとする。

 $ cd red5
 $ cp -R /doc/templates/myapp /webapps/
 $ mv myapp sample1

ちなみに、この段階で、sample1 フォルダは以下のようになっている。
 sample1/
 `-- WEB-INF
     |-- log4j.properties
     |-- red5-web.properties
     |-- red5-web.xml
     `-- web.xml

**3) フォルダの作成 [#b3e66951]
 $ cd red5/webapps/sample1/
 $ mkdir stream
 
 $ cd red5/webapps/sample1/WEB-INF/
 $ mkdir src
 $ mkdir classes

この段階で、sample1 フォルダは以下のようになっている。
 sample1/
 |-- stream/
 `-- WEB-INF
     |-- classes/
     |-- src/
     |-- log4j.properties
     |-- red5-web.properties
     |-- red5-web.xml
     `-- web.xml


ちなみに、最終的にはこんな感じになる。
 sample1/
 |-- stream/
 `-- WEB-INF
     |-- classes
     |   `-- org
     |       `-- red5
     |           `-- server
     |               `-- webapp
     |                   `-- sample1
     |                       `-- Application.class
     |-- src
     |   `-- org
     |       `-- red5
     |           `-- server
     |               `-- webapp
     |                   `-- sample1
     |                       `-- Application.java
     |-- red5-web.properties
     |-- red5-web.xml
     `-- web.xml



**4) プログラム [#p83aec48]
 $ cd red5/webapps/sample1/WEB-INF/src
 $ mkdir -p org/red5/server/webapp/sample1

 $ cd red5/webapps/sample1/WEB-INF/src/org/red5/server/webapp/sample1
 $ vim Application.java


#geshi(Java){{

package org.red5.server.webapp.sample1;

import org.red5.server.adapter.ApplicationAdapter;

public class Application extends ApplicationAdapter
{
    public String helloWorld(String name)
    {   
        return "Hello World ! " + name;
    }   
}

}}

**5) コンパイル [#yeca51e0]
javac すると、classes フォルダ以下に、Application.class ファイルが作成される。

 $ cd red5/webapps/sample1/WEB-INF/src
 $ javac -classpath red5/red5.jar -d ../classes ./org/red5/server/webapp/sample1/Application.java


**6) 設定ファイル(web.xml)の修正 [#eaf67515]
タグ <context-param> の <param-value> をプロジェクト名 sample1 に修正。 

 $ cd red5/webapps/sample1/WEB-INF
 $ vim web.xml

#geshi(XML){{

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
   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" 
   version="2.4"> 

	<display-name>Sample1 Application</display-name>

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

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

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

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

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

}}



**7) 設定ファイル(red5-web.xml)の修正 [#pbe992ae]
「bean id="web.handler"」のタグの class を、今回つくったクラスパスに変更して、その次の「bean id="myhandler.service"」のタグをコメントにした。

 $ cd red5/webapps/sample1/WEB-INF
 $ vim red5-web.xml


#geshi(XML){{

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	
	<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.server.webapp.sample1.Application" 
		singleton="true" />

<!--
	<bean id="myhandler.service" 
	    class="the.path.to.my.ServiceHandler" 
		singleton="true" />
-->
</beans>

}}




**8) 設定ファイル(red5-web.properties)の修正 [#nd185db2]
contextPath は、プロジェクト名 sample1 に変更した。

 $ cd red5/webapps/sample1/WEB-INF
 $ vim red5-web.properties

#geshi(XML){{
webapp.contextPath=/sample1
webapp.virtualHosts=*, localhost, localhost:5080, 127.0.0.1:5080
}}


**9) 確認 [#f3e4a1e1]
ブラウザから http://localhost:5080/sample1/ にアクセスして、以下のような表示がされているかどうか。

 Directory: /sample1/
 WEB-INF/ 	4096 bytes 	2009/08/26 22:21:58
 streams/ 	4096 bytes 	2009/08/27 0:54:57


&br;
*クライアント側(Flash)の作成 [#je53e07d]

**プログラム [#i5b3a3fd]

#geshi(ActionScript){{
 // あとで書きます
 // あとで書きます or 略
}}


&br;
*Comment [#q9fd0e48]
#comment_nospam
&br;
#counter

IP:219.111.184.26 TIME:"2009-10-13 (火) 22:41:15" REFERER:"http://wiki.minaco.net/index.php" USER_AGENT:"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ja-JP-mac; rv:1.9.0.14) Gecko/2009082706 Firefox/3.0.14 GTB5"

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS