Comme dit plus haut ceci n'a rien d'exceptionnel et peut être que la conception du bouzin n'est pas des meilleurs (loin de là je pense). Mais bon hein je force personne à l'utiliser non plus ;) . Allez show must go on...

Les sources

La documentation est en cours d'élaboration. Elle n'est pas définitive et peut être modifié. Je vous la propose afin que vous puissiez voir l'ensemble des class constituant le swc.

La documentation

Comment ça marche ? Commençons par créer un objet FlashMediaServerConnection.

 
import gauthier.net.flashmediaserver.FlashMediaServerConnection;
 
private var __nc:FlashMediaServerConnection;
private function init():void{
__nc= new FlashMediaServerConnection();
}

Bon ça c'est fait (je précise qu'il faudra appeler la fonction init a un moment ou a un autre évidemment a vous de choisir quand et comment).

Ok c'est bien joli mais comment je me connecte a mon a serveur ? Je suppose que comme tout bon développeur que vous êtes vous avez un server de dev (en local) il vous suffit donc pour vous connecter de rentrer le nom de votre application comme ceci :

 
import gauthier.net.flashmediaserver.FlashMediaServerConnection;
 
private var __nc:FlashMediaServerConnection;
private function init():void{
__nc= new FlashMediaServerConnection();
__nc.connection("test");
}

Par default l'objet vous connecte a cette uri "rtmp://localhost:1935/", donc si je tente de me connecter a mon application "test" voici l'uri a laquelle mon objet va me connecter "rtmp://localhost:1935/test". Maintenant je veux me connecter a une instance particulière de "test" (exemple: toto), il me suffit de mettre :

 
import gauthier.net.flashmediaserver.FlashMediaServerConnection;
 
private var __nc:FlashMediaServerConnection;
private function init():void{
__nc= new FlashMediaServerConnection();
__nc.connection("test/toto");
}

Bon jusque là pas de souci, mais bon entre nous c'est super sympas mais comment je sais si je suis bien connecte ? Super question dis donc! C'est le moment de sortir notre FlashMediaServerEvent (il a la class lui, notez le jeu de mot).

 
import gauthier.net.flashmediaserver.FlashMediaServerConnection;
import gauthier.net.flashmediaserver.FlashMediaServerEvent;
 
private var __nc:FlashMediaServerConnection;
private function init():void{
__nc= new FlashMediaServerConnection();
__nc.addEventListener(FlashMediaServerEvent.SUCCESS, onConnect);
__nc.addEventListener(FlashMediaServerEvent.FAILED, onFailed);
__nc.Connection("test/toto");
}
 
private function onConnect(e:FlashMediaServerEvent):void{
trace("yeahhh je suis connecté");
}
private function onFailed(e:FlashMediaServerEvent):void{
trace("arf, j'ai du me planter quelque part");
}

Compliqué ?

Maintenant je souhaite me connecter sur mon server de production (et non plus en localhost), voici comment procéder :

 
import gauthier.net.flashmediaserver.FlashMediaServerConnection;
import gauthier.net.flashmediaserver.FlashMediaServerEvent;
 
private var __nc:FlashMediaServerConnection;
private function init():void{
__nc= new FlashMediaServerConnection();
__nc.addEventListener(FlashMediaServerEvent.SUCCESS, onConnect);
__nc.addEventListener(FlashMediaServerEvent.FAILED, onFailed);
__nc.ip="monserver.deproduction.com"
__nc.Connection("test/toto");
}
 
private function onConnect(e:FlashMediaServerEvent):void{
trace("yeahhh je suis connecté");
}
private function onFailed(e:FlashMediaServerEvent):void{
trace("arf, j'ai du me planter quelque part");
}

Vous pouvez egalement changer le port de connexion (1935 par défaut) comme ceci :

 
__nc.port=8888;

Se connecter en utilisant le tunneling http :

 
__nc.tunneling=true;

Se connecter en utilisant le ssl:

 
__nc.secure=true;

Se connecter en utilisant le nouveau protocol crypte (rtmpe) :

 
__nc.encrypted=true;

Se connecter en utilisant le nousveau protocol crypte par tunneling http (rtmpte) :

 
__nc.tunneling=true;
__nc.encrypted=true;

Maintenant supposons que nous devons envoyer un ou plusieurs objets à la connection (generalement des information sur l'utilisateurs qui se connect, login mdp etc...) voici comment proceder :

 
import gauthier.net.flashmediaserver.FlashMediaServerConnection;
import gauthier.net.flashmediaserver.FlashMediaServerEvent;
 
private var __nc:FlashMediaServerConnection;
private function init():void{
__nc= new FlashMediaServerConnection();
__nc.addEventListener(FlashMediaServerEvent.SUCCESS, onConnect);
__nc.addEventListener(FlashMediaServerEvent.FAILED, onFailed);
__nc.addClientParam({login:"Gauthier", password:"toto"});
__nc.addClientParam(["h","e","ll","o"], 1234, "helloworld");
__nc.ip="monserver.deproduction.com";
__nc.Connection("test/toto");
}
 
private function onConnect(e:FlashMediaServerEvent):void{
trace("success");
trace("les objets envoyé en param son contenu dans un tableau et voici son contenu : "+__nc.clientParameters);
}
private function onFailed(e:FlashMediaServerEvent):void{
trace("failed");
}