mardi 15 mai 2007
Red5 : installation sous Mac OS X
Actionscript/Flash/Flex - Lien permanent
Un petit tutoriel pour vous permettre de démarrer rapidement sous Red5 : installer et configurer le serveur, puis créer votre première application. Je vais détailler l'installation sous Mac OS X mais à quelques détails prêt ce tutorial peut être suivi et adapté pour les autres plates-formes.
Vous aurez besoin :
- de Red5...
- d'Eclipse
- de Java et Apache Ant, qui sont déjà fournis avec Mac OS X, ce qui va nous faire gagner du temps, on peut donc directement commencer par configurer Eclipse. Pour Windows, ces 2 composants doivent être installés au préalable.
Par défaut Red5 s'installe dans /Applications/Red5. Toutes les applications Red5 doivent être placées dans un dossier distinct à l'intérieur du dossier /webapps.
- Au lancement d'Eclipe, définir le workspace à /Applications/Red5/webapps/. Le dossier webapps est le dossier contenant toutes les applications Red5, chacune dans un dossier distinct. Dans chaque dossier d'application doit se trouver un dossier /WEB-INF contenant les classes java et les fichiers xml de configuration.
- Red5 propose dans le dossier /docs/templates un dossier d'application "modèle" qui va nous servir de base. Copiez donc le dossier /docs/templates/myapp dans le dossier /webapps et le renommer du nom de votre application (ici /webapps/monappli)
- Dans Eclipse, créez un nouveau projet ("File" > "New" > "Project..."), choisir "Java Project", puis donner un nom à l'application. Choisir en dessous "Create project from existing source" puis choisir le dossier crée à l'étape précédente (/webapps/monappli) comme dossier du projet.

- Dans le dossier /WEB-INF, créez les dossiers /src et /classes. Le dossier /src sera le dossier contenant les sources java, /classes sera le dossier d'export pour les classes compilées.
- Définir le dossier /WEB-INF/src comme dossier de sources, par un clic droit sur ce dossier puis "Build Path" > "Use as Source Folder"

- Faites un clic droit sur le dossier du projet puis "Properties", "Java Build Path" à gauche, onglet "Source", définir le dossier /WEB-INF/classes comme dossier de sortie ("Default output folder")
- Toujours dans la fenêtre de propriétés du projet, onglet "Librairies", cliquez sur "Add External JARs" puis sélectionnez red5.jar situé dans le dossier d'installation de Red5. Ceci va nous permettre d'utiliser l'API de Red5 dans notre application.

Fichiers de configuration
Ouvrez le fichier red5-web.properties et changez l'url de votre application :
webapp.contextPath=/monappli
Ouvrez ensuite le fichier red5-web.xml. Dans ce dernier il va falloir changer le chemin vers la classe principale de notre application. Comme nous allons le voir à l'étape suivante, celle-ci s'appelle "Application" et est située dans le package "demo" :
<bean id="web.handler" class="demo.Application" singleton="true" />
Juste en dessous vous pouvez supprimer le noeud :
<bean id="myhandler.service" class="the.path.to.my.ServiceHandler" singleton="true" />
Ouvrez enfin web.xml et modifiez la valeur de webAppRootKey avec le chemin vers votre application :
<context-param> <param-name>webAppRootKey</param-name> <param-value>/monappli</param-value> </context-param>
Création de la classe Application
Dans le dossier de sources, créez un nouveau package "demo" (clic droit sur le dossier WEB-INF/src -> "New" -> "Package") puis une nouvelle classe dans ce dernier. Nommez-là "Application".

Je vais ici reprendre l'exemple de base fourni dans la doc de Red5. Nous allons créer une application minimaliste qui possède une simple et unique fonction qui renvoie la somme entre 2 nombres. Plus simple tu meurs :)
A noter, notre classe Application doit hériter de la classe org.red5.server.adapter.ApplicationAdapter.
package demo;
import org.red5.server.adapter.ApplicationAdapter;
public class Application extends ApplicationAdapter {
public double add(double a, double b){
return a+b;
}
}
Compilation et lancement du serveur
Red5 utilise Ant pour simplifier et automatiser l'étape de compilation. Ant se configure à l'aide d'un fichier build.xml qui se trouve à l'intérieur du dossier d'installation de Red5 (/Application/Red5). Il va donc falloir modifier ce fichier afin d'intégrer notre classe dans le processus de compilation.
Ouvrez le fichier build.xml puis à l'intérieur du noeud <target name="compile_demos">, rajoutez un nouveau noeud comme ceci :
<javac sourcepath="" srcdir="${webapps.dir}/monappli/WEB-INF/src" destdir="${webapps.dir}${tmp.war.dir}/monappli/WEB-INF/classes"
classpathref="webapps.classpath" optimize="${build.optimize}" verbose="${build.verbose}"
fork="${build.fork}" nowarn="${build.nowarn}" deprecation="${build.deprecation}"
debug="${debug.state}" compiler="${compiler}" source="${java.target_version}" target="${java.target_version}"/>
Voilà, à présent tout est configuré, il ne reste plus qu'à lancer le processus de compilation et lancer le serveur. Pour ce faire, ouvrez une fenêtre du terminal, déplacez vous dans le dossier /Applications/Red5 puis lancez la commande :
sudo ant server
A noter : sudo est nécessaire car les droits root sont requis dans le dossier /Applications pour y créer et modifier des dossiers et/ou fichiers. Si vous avez installé Red5 dans votre dossier personnel, vous pouvez vous passer de sudo.
A la fin de la compilation, le serveur démarre, Red5 est lancé !
Coté client
Nous allons désormais créer l'application cliente sous Flash. Dans un nouveau FLA, tapez le code suivant sur la première frame :
var nc:NetConnection = new NetConnection();
nc.connect("rtmp://localhost/monappli");
nc.onResult = function(obj) {
trace("Le résultat est " + obj);
}
nc.call("add", nc, 1, 2);
Vous l'avez déjà deviné, la méthode call permet d'appeler une méthode de l'application distante, puis le gestionnaire onResult permet de capter la réponse du serveur.
Sauvegardez, testez, et admirez :)
Commentaires
Merci pour l'exemple du build.xml . Si seulement il existait un tutoriel plus complet sur "Ant et Red5" ça serait g é n i a l.
Merci pour l'excellent tuto. Dites-moi c'est comment pour la compilation je suis sur windows alors dos ne reconnait pas la ligne de comande qui est pour unix.
Merci.
A vérifier mais pour Windows il faut d'abord installer ant. Ensuite je suppose que celui ci peut être exécuté à partir d'un ant.bat :
http://ant.apache.org/index.html
nc.call("add", nc, 1, 2);
j obtiens l erreur suivante :
1067: Contrainte implicite d'une valeur du type flash.net:NetConnection vers un type sans rapport flash.net:Responder.
j essaye de caster 1 et 2 en Responder mais j obtiens une autre erreur ...
Bonsoir à tous,
J'obtiens également une erreur 1067 et je ne parviens pas à contourner ce petit soucis. Aussi, si vous avez pu régulariser ce problème, pouvez vous m'en faire part.
Sinon, ce tuto' est excellent. Un très grand merci donc d'en faire profiter la communauté.
Bien à vous.
bonjour,
Salut,
J'ai suivi les instructions du blog pour installer red 5 sur un mac et tout c'est bien passé jusqu'à l'indication (juste avant "Fichiers de configuration" dans "Red 5 installation sous Mac OS X")
- cliquez sur "Add External JARs" puis sélectionnez red5.jar situé dans le dossier d'installation de Red5"
Quand je le fais, le programme Eclipse me dit:
Cannot nest 'Applications/Red5/lib/sp...side library 'Applications/Red5/lib/'
Aha !
je réinstalle un fichier fraichement redownloader red5.jar? ou le probleme est autre part?
Il y a encore plus simple : www.red5-installation.com mais ce n'est pas gratuit !
bonjour,
Le tuto est super ; mon problème, c'est le terminal qui me dit "ant : command not found".
Je pense que c'est le noeud à ajouter dans dans "compile_demo" qui pose problème. Les explications sont un peu brèves, et l'emplacement n'est pas très évident...