Начало Статии Компютри Програмиране Как да направя просто приложение с Red5 и Flash
Как да направя просто приложение с Red5 и Flash ПДФ Печат Е-мейл
Написано от igurbev   
петък, 28 март 2008 16:34

Как да направя просто приложение с Red5 и Flash


Стъпка 1:-

Отворете оразеца, който можете да намерите в директорията, където сте инсталирали Red5 (обикновено тева за windows: - “C:\Program files\Red5\doc\templates\myapp”).
Копирайте тази папка в Red5\webapps\ директорията.

Стъпка 2:-

Това е стандартния образец за стартиране на приложение на сървъра. Следва да променим зададените настройки по съответния начин. Променете папката myapp на sample. Тази папка sample ще бъде името на новото приложение. Сега следва да промените конфигурационните файлове вътре в нея. Структурата на проложението трябва да изглежда подобно-




Отворете red5-web.properties файла и променете contextPath на образеца както следва –

webapp.contextPath=/sample
webapp.virtualHosts=localhost, 127.0.0.1

Отворете web.xml файла и променете display и webAppRootKey съответно–

</DISPLAY-NAME>My First sample application with Red5</DISPLAY-NAME>

<context-param>
<param-name>webAppRootKey</param-name>
<param-value>/sample</param-value>
</context-param>

Сега отворете red5-web.xml файла и променете името на приложението както е показано-

<bean id="web.handler"
class="org.xyz.Application"
singleton="true" />

където org.xyz е структурата на пакетите, които са използвани в примера. Тя може да бъде заменена с друга. Директорията lib ще съдържа jar файла на приложението.

Стъпка 3:-

Конфигурацията на сървърната част е готова. Сега ще създадем реалното приложение, което ще контактува с флаш клиента.

Отворете любимото си java IDE (например eclipse) и създайте нов проект. Наречете го Sample. Създайте показаната по долу структура в проекта Sample.





Папката src ще съдържа структурата от пакети org.xyz. Компилираните класове ще бъдата в папката classes lib ще съдържа jar архива на компилираните класове.

Сега създайте файла build.xml за изграждането на пролекта с инструметна ant. Този файл трябва да излежа ето така-

<project name="My Sample Red5 Project" default="compile" basedir=".">

<target name="clean" description="Clean output directories">

</target>

<target name="compile" depends="clean">
<javac destdir="./classes" source="1.5">

</javac>
</target>

<target name = "jar" depends ="compile">
<echo message ="Getting class files from classes directory"/>
<jar destfile="./lib/app.jar" basedir="./classes"/>
<echo message ="jar creation done"/>
<copy file ="./lib/app.jar" tofile ="C:\Program Files\Red5\webapps\sample\WEB-INF\lib\app.jar"/>
<echo message="jar copied to red5"/>
</target>
</project>

Ако работите с eclipse можете да изплозвате вградения ant, което би опростило задачата ви.
Note: - Не забравяйте да добавите red5.jar, намиращ се в директорията, където сте инсталирали Red5 в CLASSPATH на eclipse, за да може той да дамери нужните му библиотеки и да компилира приложението без грешки.

Стъпка 4:-

Създайте файл с име Application.java в пакета предназначен да съдържа кода.
Простото приложение ще изглежда по следния начин –

Application.java

package org.xyz;

//log4j класовете
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

//Red5 класовете
import org.red5.server.adapter.ApplicationAdapter;
import org.red5.server.api.IClient;
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;

/**Класът на простото приложение*/

public class Application extends ApplicationAdapter{
/**Variable used for generating the log*/
private static final Log log = LogFactory.getLog(Application.class);

/**Методът ще се изпълни на сътвъра при стартирането*/
public boolean appStart(IScope app){
if(super.appStart(app) == false){
return false;
}
log.info("Application start method of Application called");
return true;
}

/**Този метод ще се изпълни, когато клиента за първо се свърже към Red5 сървъра*/
public boolean roomStart(IScope room){
if(super.roomStart(room) == false){
return false;
}
log.info("Inside room start of Application");
return true;
}

/**Този метод ще се изпълнява всеки път кагато клиента се свързва към сървъра*/
public boolean roomConnect(IConnection conn, Object params[]){
if(super.roomConnect(conn, params) == false){
return false;
}
log.info("Inside room connect method of Application");
return true;
}

/**Този метод ще се извиква, когато клиента прекъсне връзката*/
public void roomDisconnect(IConnection conn){
super.roomDisconnect(conn);
log.info("Inside room disconnect method of Application");
}

/**Този метод ще се изпълни, когато клиента напусне приложението*/
public void appDisconnect(IConnection conn){
log.info("Inside app disconnect method of Application");
}

/**Този метод ще бъде извикван от клиента и ще показва Hello World!” в флаш приложението на клиента*/
public String sayHello(Object[] params){
log.info(“I got your name:-”+params[0].toString());
return “Hello World!” + params[0].toString();
}


}

Целта на показания файл е просто да демонстрира как би трябвало да изглежда сървърната приложение.
Прочетете Red5 документацията за повече детайли за методите в класа AplicationAdapter. Тук ние дефинирахме метод на име sayHello, който ще получи името на потребитела от флаш клиета, ще добави това име към поздрава “Hello World!” и ще го изпрати обратно към клиента.


Стъпка 5:

Приложението на сървъра е вече готово. Остава да създадем флаш приложението, което ще се свърже към Red5 сървъра.

Създайте нов флаш документ –

Придърпайте Alert компонент от window—components от флаш библиотеката. Отворете Action-Frame и напишете следния код.

import mx.controls.Alert;


var nc:NetConnection = new NetConnection();

nc.val = this;
nc.onStatus = function(info){
switch(info.code){

case "NetConnection.Connect.Success":
Alert.show("Got connected with application);
this.val.callServer();
break;

case "NetConnection.Connect.Failed":
Alert.show(info.application);
break;

case "NetConnection.Connect.Rejected":
Alert.show(info.application);
break;

case "NetConnection.Connect.Closed":
Alert.show("Client Disconnected");
break;
}
};
nc.connect("rtmp://localhost/sample");

function callServer(){
var resultObj:Object = new Object();
nc.call("sayHello", resultObj,"Your Name");
resultObj.onResult = function(str){
Alert.show(str); //This will display "Hello World! Your Name"
}
};
}

Сега запишете приложението, например като sample.fla.

Горния код е Action script 1 код; можете да го поставите във външен файл с разширение .as и да го свържете с приложението.


Край:-

Стартирайте флаш клиента и ако връзката със сървъра е успешна ще се покаже прозорец, който казва “Hello World! Твоето Име”

Коментари
Добавяне на нов Търсене
Коментирай
Име:
Email:
 
Заглавие:
:D:):(:0
:shock::confused:8):lol:
:x:P:oops::cry:
:evil::twisted::roll::wink:
:!::?::idea::arrow:
Моля въведете антиспам кода!

3.20 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."