- XML socket
-
XMLSocket est un protocole implémenté par le langage ActionScript qui permet à une animation Adobe Flash de communiquer au dessus de TCP grâce à des Sockets. Il permet le transfert de données textuelles brutes (texte) ou hiéarchiques (XML ,xHTML). Il est utilisé souvent dans la application de chat et de jeux multi utilisateurs.
Le protocole est le suivant :
- des messages XML sont envoyés en full duplex grace à une connexion TCP/IP utilisant les sockets ;
- chaque message XML est un document XML terminé par des bits de zero ;
- une quantité illimité de messages XML peut être envoyé et reçu au sein d'une seule connexion.
Sommaire
Client Flash
Flash a été la première technologie a proposer le protocole XMLSocket du côté client .
ActionScript 2.0
Le code pour affficher un Hello, World! en ActionScript 2.0 est le suivant : le socket utilise le port 8463 sur la machine locale et le mode echo est actif .
var xmlSocket:XMLSocket=new XMLSocket(); xmlSocket.onConnect=function() { xmlSocket.send(new XML("<message><text>Hello, World!</text></message>")); } xmlSocket.onXML=function(myXML) { trace(myXML.firstChild.childNodes[2].firstChild.nodeValue); xmlSocket.close(); } xmlSocket.connect("localhost",8463);
ActionScript 3.0
Ci dessous exemple d'une connexion xmlSocket en ActionScript 3.0:
var xml_s=new XMLSocket(); xml_s.connect(ip,port); xml_s.addEventListener(Event.CONNECT,xmlsocket); xml_s.addEventListener(Event.CLOSE,xmlsocket); xml_s.addEventListener(IOErrorEvent.IO_ERROR,xmlsocket); function xmlsocket(Event):void { switch (Event.type) { case 'ioError' : //Unable to Connect break; case 'connect' : //Connected break; case 'close' : //OnDisconnect break; } }
Client Silverlight
Silverlight supporte l'utilisation des sockets dans son espace de nom System.Net.Sockets . Le protocole est asynchrone et utilise le port 4502 à 4534. La communication peut avoir lieu entre un client et plusieurs serveur ( cross-domain socket) a condition qu'un fichier définit les règles de sécurité sur le serveur primaire.
Silverlight 1.1 et 2.0
Silverlight utilise un format basé sur du XML pour contrôler l’accès aux ressources par domaines interposés. En plus, Silverlight supporte aussi le format Adobe Flash régissant les accès inter-domaines. Silverlight 2 à partir de la bêta 1 ajoute aussi un support pour les communications réseaux, utilisant les sockets à travers IPv4 et IPv6. Silverlight 2.0 supporte aussi la programmation asynchrone, par l’utilisation des bibliothèques de « threading ». Cependant, les sockets Silverlight sont plus restrictives. Elles peuvent communiquer uniquement avec l’hôte qui a lancé l’application au départ, et les numéros de port sont restreints du numéro 4502 à 4532. Les prochaines versions pallieront ce problème. Les sockets Silverlight peuvent uniquement initier une connexion, elles ne peuvent être en attente.
Liens internes
Liens externes
- XML Sockets: the basics of multiplayer games, gotoAndPlay Flash Tutorials
- XMLSocket Simplified, Heliant Whitepaper for ActionScript
- Utilizing Flash Player XMLSockets for JavaScript applications
- Palabre, Simple open source XML socket server for Flash written in python
Wikimedia Foundation. 2010.