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.

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 
Flash a été la première technologie à proposer le protocole XMLSocket du côté client.

ActionScript 2.0 
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.

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 serveurs () à condition qu'un fichier définisse 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.  à partir de la  ajoute aussi un support pour les communications réseaux, utilisant les sockets à travers IPv4 et IPv6.  supporte aussi la programmation asynchrone, par l’utilisation des bibliothèques de «  ». 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  à 4532. Les prochaines versions pallieront ce problème. Les sockets Silverlight peuvent uniquement initier une connexion, elles ne peuvent être en attente.

Voir aussi

Articles connexes 
 XMLHttpRequest
 AJAX
 Websocket

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

XML

en:Adobe Flash Player#Data