Red5 で HelloWorld?


内容

  • Java は殆どやったことないので間違ってるかもしれません。ごめんなさい。
  • flash から java のメソッドを呼ぶ。
  • red5-0.8.0.tar.gz を解凍したフォルダ内の doc/HOWTO-NewApplications?.txt を参考にしました。


サーバサイド側(Java)作成

1) 確認

red5 フォルダ以下に、red5-0.8.0.tar.gz を解凍したファイルがあるものとする。

2) テンプレートをコピーする

red5 フォルダの /doc/templates/ に、テンプレートとなるファイルがあるので、それを webapps フォルダにコピーして使う。
今回は、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) フォルダの作成

$ 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) プログラム

$ 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
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) コンパイル

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)の修正

タグ <context-param> の <param-value> をプロジェクト名 sample1 に修正。

$ cd red5/webapps/sample1/WEB-INF
$ vim web.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)の修正

「bean id="web.handler"」のタグの class を、今回つくったクラスパスに変更して、その次の「bean id="myhandler.service"」のタグをコメントにした。

$ cd red5/webapps/sample1/WEB-INF
$ vim red5-web.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)の修正

contextPath は、プロジェクト名 sample1 に変更した。

$ cd red5/webapps/sample1/WEB-INF
$ vim red5-web.properties
webapp.contextPath=/sample1
webapp.virtualHosts=*, localhost, localhost:5080, 127.0.0.1:5080

9) 確認

ブラウザから 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


クライアント側(Flash)の作成

プログラム

 // あとで書きます or 略


Comment



Counter: 8686, today: 2, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:55:57 (1336d)