L'API client d'Oregano-Server enfin en AS 2.0
Par Magu(s) le vendredi 11 mars 2005, 16h41 - Web - Lien permanent - URL miniature

Une excellente nouvelle dans le monde de la communication serveur avec Flash, l'API client de la fabuleuse application multi-user Oregano-Server a enfin été traduite en AS 2.0.
Eric Priou (Arixtekila), un jeune développeur actionscript motivé vient de réaliser un portage de l'API prototype-based en poo class-based et le distribue sur son blog.
C'est le genre d'initiative qui fait plaisir !
Pour rappel, Oregano Server est une application serveur multiuser pouvant gerer des flux XML venant de clients Flash. Elle est gratuite et distribuée sous la "GNU Lesser General Public License (LGPL)".
Ecrite en java, elle est compatible Linux, Windows ou Mac OS X.
Concrètement, Oregano-Server sert à construire des environnements multi-joueurs tel que des chats ou des jeux en lignes grâce à un système de communcation "real-time" basé sur la classe XMLSocket de Flash.
Jusqu'à maintenant, Oregano avait un grand défaut face à ses concurrents propriétaires tel que le célèbre Unity de Colin Moock ou le FlashComm de Macromedia : son API (interface de programmation) Client en AS 1.0. En effet, toutes les classes actionscript étant prototype-based, il était impossible de compiler un swf au format ActionScript 2.0 et donc d'utiliser la nouvelle version du langage de Flash.
Chose maintenant rendue possible grâce à Eric Priou qui replace l'application dans la course aux meilleurs serveurs altérnatifs à la solution officielle et hors de prix de Macromedia.
Vous pouvez trouver la première beta release du package sur son Blog ou sur la page dowload du site d'Oregano-Server.
Commentaires
J'ai juste compris "multi-joueurs"... Magus doit ête content
Oui je dois dire que cette nouvelle me remplit de joie
Quelques petits détails :
un jeune développeur actionscript motivé
…Oregano Server est une application serveur multiuser pouvant gerer des flux XML venant de clients Flash…
En fait, Oregano est bien plus efficace que cela. Ce n'est pas du xml qui transite entre le client et le serveur. Il s'agit plutôt d'un stream de données qui seront serialisées correctement des deux côtés du socket.
En bref, pas besoin de ce soucier de ce que l'on envoie, String, Boolean ou Object tout passe et est interprété convenablement… un peu comme Flash Remoting.
C'est très très pratique.
Les vrais avantages de cette traduction sont :
- le typage des objets inclus que vous utilisez.
- la structuration du développement avec des notions de règles.
- la possibilité de compiler avec mtasc
j'en passe et des meilleures !
Je publierai bientôt des explications plus précises sur les modifications que cela entraîne, des exemples aussi.
Au fait,
Faut forcement être motivé pour abattre autant de boulot, et des vieux developpeurs flash ça n'existe pas

J'avais des chances de tomber dans le bon
En tous cas félicitations, j'avais essayé de commencer l'adaptation puis j'ai pris peur en voyant la taille et la complexité des fichiers.
Tiens une question qui me turlupine alors.
Si les objets sont sérialisés à la manière du flash-remoting, c'est quand même toujours la classe XMLSocket qui est utilisé pour communiquer avec le serveur ? Les objets doivent donc êtré sérialisés dans flash pour passer dans un flux xml ?
Je comprends pas bien le principe ?
…c'est quand même toujours la classe XMLSocket qui est utilisée pour communiquer avec le serveur ?…
) sont donc écourtés. Par contre, il y a bien évidemment une étape de démarshallisation pour que les objets retrouvent leur identité (datatype).
Cette classe gère effectivement ce type d'echanges.
…Les objets doivent donc êtré sérialisés dans flash pour passer dans un flux xml ?…
Non, pourquoi ?
XMLSocket est juste une appelation comme une autre.
A ce titre, elle est un peu restrictive.
De la même façon qu'avec l'obejt XML, on dispose d'un callback nommé onData. Sa particularité, c'est d'être généré AVANT un quelconque parsing.
Si ce callback est intercepté, le parsing peut être même evité.
Voilà, il y a donc interception de cet événement en interne, puis sérialisation à la manière du framework. La serialisation est nommé par ailleurs "marshall", cela doit rappeler des souvenirs à certains (…).
Les délais de processus (dont la rapidité est bien connue sur flash player
Pour finir, je dirais qu'avant que l'objet LoadVars fit sont aimable apparition, certains utilisaient déjà l'objet XML pour obtenir une meilleure abstraction aux chargements vers le serveur. XML disposait bien avant aussi de XML.getBytesLoaded()
Voilà pour la petite histoire… ce qui ne nous rajeuni pas tout ça !
allez-y maintenant, rock the player
Et n'hésitez pas à nous faire parvenir vos œuvres et tests.
L'auteur, Jens Halm, sera ravi aussi…
Serais-ce le M. Eric Priou, député maire du Croisic ????
Effectivement, à la manière du LoadVars ou de la classe XML, le XMLSocket peut récuperer des "raw datas" et alors lui appliquer son propre traitement
C'est très futé en fait
c'est pas très gentil d'infliger à le magu des nuits blanches répétées