Flash media server connection swc
Par Gauthier, dans Flash Media Server -# 20 - Fil RSS
Fiou il était temps de dépoussiérer quelques peu ce blog. Voici donc le premier petit billet vous proposant mon petit ensemble de class me permettant de me connecter a un server flash media en as3. Rien d'exceptionnel mais qui je trouve est bien pratique. Je posterais bientôt la suite (espérons que j'ai suffisement de temps :P) ainsi que la documentation (ça prend du temps de faire les choses proprement).
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...
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.
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"); }
Commentaires
#1 - Le lundi 9 juin 2008 à 13:31, par Michael D.
#2 - Le lundi 9 juin 2008 à 13:39, par JM
#3 - Le lundi 9 juin 2008 à 14:19, par Gauthier
Ajouter un commentaire