Отворете оразеца, който можете да намерите в директорията, където сте инсталирали Red5 (обикновено тева за windows: - “C:\Program files\Red5\doc\templates\myapp”).
Копирайте тази папка в Red5\webapps\ директорията.
Стъпка 2:-
Това е стандартния образец за стартиране на приложение на сървъра. Следва да променим зададените настройки по съответния начин. Променете папката myapp на sample. Тази папка sample ще бъде името на новото приложение. Сега следва да промените конфигурационните файлове вътре в нея. Структурата на проложението трябва да изглежда подобно-
Отворете red5-web.properties файла и променете contextPath на образеца както следва –
където org.xyz е структурата на пакетите, които са използвани в примера. Тя може да бъде заменена с друга. Директорията lib ще съдържа jar файла на приложението.
Стъпка 3:-
Конфигурацията на сървърната част е готова. Сега ще създадем реалното приложение, което ще контактува с флаш клиента.
Отворете любимото си java IDE (например eclipse) и създайте нов проект. Наречете го Sample. Създайте показаната по долу структура в проекта Sample.
Папката src ще съдържа структурата от пакети org.xyz. Компилираните класове ще бъдата в папката classeslib ще съдържа jar архива на компилираните класове.
Сега създайте файла build.xml за изграждането на пролекта с инструметна ant. Този файл трябва да излежа ето така-
<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 в пакета предназначен да съдържа кода.
Простото приложение ще изглежда по следния начин –
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 и напишете следния код.
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! Твоето Име”