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érarchiques (XML, xHTML). Il est souvent utilisé dans des applications de chat et de jeux multijoueurs [Lesquelles ?] .
Le protocole est le suivant :
- des messages XML sont envoyés en full duplex grâce à une connexion TCP/IP utilisant les sockets ;
- chaque message XML est un document XML terminé par des bits de zéro ;
- une quantité illimitée de messages XML peuvent être envoyés et reçus au sein d'une seule connexion.
Client Flash
[modifier | modifier le code ]Flash a été la première technologie à proposer le protocole XMLSocket du côté client.
ActionScript 2.0
[modifier | modifier le code ]Le code pour afficher 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.
varxmlSocket:XMLSocket=newXMLSocket(); xmlSocket.onConnect=function(){ xmlSocket.send(newXML("<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
[modifier | modifier le code ]Ci-dessous exemple d'une connexion xmlSocket en ActionScript 3.0 :
varxml_s=newXMLSocket(); xml_s.connect(ip,port); xml_s.addEventListener(Event.CONNECT,xmlsocket); xml_s.addEventListener(Event.CLOSE,xmlsocket); xml_s.addEventListener(IOErrorEvent.IO_ERROR,xmlsocket); functionxmlsocket(Event):void{ switch(Event.type){ case'ioError': // Unable to Connect break; case'connect': // Connected break; case'close': // OnDisconnect break; } }
Client Silverlight
[modifier | modifier le code ]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 serveurs (cross-domain socket) à condition qu'un fichier définisse les règles de sécurité sur le serveur primaire.
Silverlight 1.1 et 2.0
[modifier | modifier le code ]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.
Voir aussi
[modifier | modifier le code ]Articles connexes
[modifier | modifier le code ]Liens externes
[modifier | modifier le code ]- 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