Packageflash.net
Classepublic class XMLSocket
HéritageXMLSocket Inheritance EventDispatcher Inheritance Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La classe XMLSocket implémente les sockets client qui permettent à l'ordinateur exécutant Flash Player de communiquer avec un ordinateur serveur identifié par une adresse IP ou un nom de domaine. La classe XMLSocket est utile pour les applications clients/serveur qui requièrent un court délai, telles que des systèmes de dialogue en ligne en temps réel. Une solution de dialogue en ligne par HTTP classique interroge fréquemment le serveur et télécharge les nouveaux messages à l'aide d'une requête HTTP. Par contraste, une solution de dialogue en ligne XMLSocket maintient une connexion ouverte avec le serveur, permettant à celui-ci d’envoyer immédiatement les messages entrants sans requête du client. Pour utiliser la classe XMLSocket, l'ordinateur serveur doit exécuter un démon capable de lire le protocole utilisé par la classe XMLSocket. Le protocole est décrit dans la liste suivante :

La méthode XMLSocket.connect() ne peut se connecter qu'aux numéros de port TCP supérieurs ou égals à 1024. En conséquence de cette restriction, les serveurs démon qui communiquent avec l'objet XMLSocket doivent également être affectés à des numéros de port supérieurs ou égaux à 1024. Les ports dont le numéro est inférieur à 1024 sont souvent utilisés par des services du système, tels que FTP, Telnet et HTTP, de sorte que les objets XMLSocket ne puissent pas y accéder pour des raisons de sécurité. La restriction du numéro de port limite les possibilités d'accès à ces ressources et leur mauvaise utilisation.

La configuration d'un serveur en vue de la communication avec un objet XMLSocket peut être difficile à réaliser. Si votre application ne requiert pas d'interactivité en temps réel, utilisez la classe URLLoader, plutôt que la classe XMLSocket. Pour utiliser les méthodes de la classe XMLSocket, vous devez d'abord utiliser le constructeur, new XMLSocket, pour créer un objet XMLSocket.

Lorsque vous employez cette classe, tenez compte du modèle de sécurité Flash Player :

Pour plus d'informations, consultez les références suivantes :

Consulter les exemples

Voir aussi

flash.net.URLLoader.load()
flash.net.URLLoader
Connexions socket


Propriétés publiques
 PropriétéDéfini par
  connected : Boolean
[lecture-seule] Indique si l’objet XMLSocket est actuellement connecté.
XMLSocket
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
Méthodes publiques
 MéthodeDéfini par
  
XMLSocket(host:String = null, port:int = 0)
Crée un objet XMLSocket.
XMLSocket
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.
EventDispatcher
  
Ferme la connexion spécifiée par l'objet XMLSocket.
XMLSocket
  
connect(host:String, port:int):void
Etablit une connexion à l’hôte Internet spécifié en utilisant le port TCP indiqué.
XMLSocket
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l'objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
Object
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
  
send(object:*):void
Convertit l'objet ou les données XML spécifiés dans le paramètre object en une chaîne et la transmet au serveur, suivie d'un octet nul (0).
XMLSocket
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
 Inherited
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié.
EventDispatcher
Evénements
 Evénement Synthèse Défini par
 Inherited Distribué lorsque Flash Player a le focus du système d’exploitation et devient actif.EventDispatcher
   Distribué lorsque le serveur ferme la connexion socket.XMLSocket
   Distribué après un appel de la méthode XMLSocket.connect() qui a abouti.XMLSocket
   Distribué après l'envoi ou la réception de données brutes.XMLSocket
 Inherited Distribué lorsque Flash Player perd le focus du système d’exploitation et devient inactif.EventDispatcher
   Distribué lorsqu'il se produit une erreur d'entrée/sortie entraînant l'échec d'une opération d'envoi ou de réception.XMLSocket
   Distribué si un appel de la méthode Socket.connect() tente une connexion à un serveur situé hors du sandbox de sécurité de l'appelant ou à un port inférieur à 1024.XMLSocket
Détails des propriétés
connectedpropriété
connected:Boolean  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Indique si l’objet XMLSocket est actuellement connecté. Vous pouvez également vérifier si la connexion a abouti en vous enregistrant pour les événements connect et ioError.


Implémentation
    public function get connected():Boolean

Voir aussi

Détails du constructeur
XMLSocket()Constructeur
public function XMLSocket(host:String = null, port:int = 0)

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Crée un objet XMLSocket. L'objet XMLSocket n'est initialement pas connecté à un serveur. Vous devez appeler la méthode XMLSocket.connect() pour établir la connexion.

Paramètres
host:String (default = null) — Nom de domaine DNS complet ou adresse IP au format aaa.bbb.ccc.ddd. Vous pouvez également spécifier null pour vous connecter au serveur hôte qui héberge le fichier SWF. Si le fichier SWF effectuant cet appel s'exécute dans un navigateur Web, host doit appartenir au même domaine que le fichier SWF.
 
port:int (default = 0) — Numéro du port TCP de l'hôte utilisé pour établir une connexion. Ce numéro doit être supérieur ou égal à 1024, sauf si un fichier de régulation est utilisé.

Voir aussi

Détails des méthodes
close()méthode
public function close():void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Ferme la connexion spécifiée par l'objet XMLSocket. L’événement close se produit uniquement lorsque le serveur ferme la connexion. Il n'est pas distribué lorsque vous appelez la méthode close().

Voir aussi

connect()méthode 
public function connect(host:String, port:int):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Etablit une connexion à l’hôte Internet spécifié en utilisant le port TCP indiqué. A moins que vous n’utilisiez un fichier de régulation, vous ne pouvez, par défaut, vous connecter qu’à un port dont le numéro est supérieur ou égal à 1024.

Si vous spécifiez null pour le paramètre host, l'hôte contacté est celui où réside le fichier SWF appelant la méthode XMLSocket.connect(). Par exemple, si le fichier SWF a été téléchargé à partir du site www.adobe.com, le fait de spécifier null pour le paramètre host équivaut à entrer l'adresse IP de www.adobe.com.

Pour les fichiers SWF lus par une version antérieure à Flash Player 7, le paramètre host doit correspondre au superdomaine du fichier SWF envoyant cet appel. Par exemple, un fichier SWF à l'adresse www.adobe.com peut envoyer ou recevoir des variables provenant d'un fichier SWF à l'adresse store.adobe.com, car les deux fichiers résident dans le même superdomaine adobe.com.

Dans tous les fichiers SWF, quelle que soit leur version, exécutés dans Flash Player 7 ou une version ultérieure, le paramètre host doit se trouver exactement dans le même domaine. Par exemple, un fichier SWF situé à l'adresse www.adobe.com et publié pour Flash Player 5, mais s'exécutant dans Flash Player 7 ou une version ultérieure, ne peut envoyer et recevoir des variables que des fichiers SWF également situés dans www.adobe.com. Si vous souhaitez envoyer ou recevoir des variables d'un autre domaine, placez un fichier de régulation interdomaines sur le serveur qui héberge le fichier SWF auquel vous accédez.

Vous pouvez éviter qu'un fichier SWF n'utilise cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui héberge le contenu SWF.

Pour plus d'informations, consultez les références suivantes :

Paramètres

host:String — Nom de domaine DNS complet ou adresse IP au format aaa.bbb.ccc.ddd. Vous pouvez également spécifier null pour vous connecter au serveur hôte qui héberge le fichier SWF. Si le fichier SWF effectuant cet appel s'exécute dans un navigateur Web, host doit appartenir au même domaine que le fichier SWF.
 
port:int — Numéro du port TCP de l'hôte utilisé pour établir une connexion. Ce numéro doit être supérieur ou égal à 1024, sauf si un fichier de régulation est utilisé.


Evénements
securityError:SecurityErrorEvent — Tentative de connexion à un serveur situé hors de la zone de sécurité sandbox de l'appelant, et/ou à un port inférieur à 1024. Vous pouvez contourner ce problème en utilisant un fichier de régulation XMLSocket sur le serveur.
 
data:DataEvent — Distribué à la réception de données brutes.
 
connect:Event — Distribué lorsqu’une connexion réseau est établie.

Lance
SecurityError — Les fichiers SWF locaux non approuvés ne peuvent pas communiquer avec Internet. Pour contourner ce problème, reclassifiez le fichier SWF en tant que fichier local avec accès au réseau ou en tant que fichier approuvé.
 
SecurityError — Il est impossible de spécifier un port de socket supérieur à 65535.

Voir aussi

send()méthode 
public function send(object:*):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Convertit l'objet ou les données XML spécifiés dans le paramètre object en une chaîne et la transmet au serveur, suivie d'un octet nul (0). Si object est un objet XML, la chaîne est la représentation textuelle XML de l'objet XML. L'opération d'envoi est asynchrone ; elle est immédiatement renvoyée, mais les données peuvent être transmises plus tard. La méthode XMLSocket.send() ne renvoie pas de valeur indiquant si les données ont bien été transmises.

Si vous ne connectez pas l'objet XMLSocket au serveur à l’aide de XMLSocket.connect(), l’opération XMLSocket.send() échoue.

Paramètres

object:* — Objet XML ou toute autre donnée à transmettre au serveur.


Lance
IOError — L'objet XMLSocket n'est pas connecté au serveur.

Voir aussi

Détails des événements
close Evénement
Type d'objet événement: flash.events.Event
Event.type property = flash.events.Event.CLOSE

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué lorsque le serveur ferme la connexion socket. L’événement close se produit uniquement lorsque le serveur ferme la connexion. Il n'est pas distribué lorsque vous appelez la méthode XMLSocket.close().

Définit la valeur de la propriété type d'un objet événement close.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet dont la connexion a été fermée.
connect Evénement  
Type d'objet événement: flash.events.Event
Event.type property = flash.events.Event.CONNECT

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué après un appel de la méthode XMLSocket.connect() qui a abouti.

Définit la valeur de la propriété type d'un objet événement connect.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet Socket ou XMLSocket qui a établi une connexion réseau.
data Evénement  
Type d'objet événement: flash.events.DataEvent
DataEvent.type property = flash.events.DataEvent.DATA

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué après l’envoi ou la réception de données brutes.

Définit la valeur de la propriété type d'un objet événement data.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
dataDonnées brutes chargées dans Flash Player.
targetObjet XMLSocket recevant les données.
ioError Evénement  
Type d'objet événement: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué lorsqu'il se produit une erreur d'entrée/sortie entraînant l’échec d’une opération d’envoi ou de réception.

Définit la valeur de la propriété type d’un objet événement ioError.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau sur lequel l’erreur d’entrée/sortie s’est produite.
textTexte à afficher en tant que message d’erreur.
securityError Evénement  
Type d'objet événement: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué si un appel de la méthode XMLSocket.connect() tente une connexion à un serveur situé hors du sandbox de sécurité de l'appelant ou à un port inférieur à 1024.

La constante SecurityErrorEvent.SECURITY_ERROR définit la valeur de la propriété type d’un objet événement securityError.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau signalant l’erreur de sécurité
textTexte à afficher en tant que message d’erreur.

Voir aussi

Exemples Utilisation des exemples
XMLSocketExample.as

L'exemple suivant utilise la classe XMLSocketExample pour envoyer des données à l'aide d'un XMLSocket et imprimer des informations pendant des événements XMLSocket. Pour ce faire, exécutez la procédure suivante :
  1. Le constructeur XMLSocketExample crée une occurrence de XMLSocket nommée socket et transmet le socket à la méthode ConfigureListeners() (décrite ci-dessous), puis appelle la méthode connect() de XMLSocket avec le nom d'hôte « localhost » et le numéro de port 8080.
  2. La méthode configureListeners() est ensuite appelée, ce qui ajoute des écouteurs à chacun des événements XMLSocket pris en charge :
    • closeHandler() : écoute l'événement close, qui est distribué après la fermeture de la connexion réseau.
    • connectHandler() : écoute l'événement connect, qui est distribué à l'ouverture de la connexion réseau.
    • dataHandler() : écoute l'événement data, qui est distribué chaque fois que le XMLSocket reçoit de nouvelles données.
    • progressHandler() : écoute l'événement progress, qui est distribué à chaque appel de la méthode send() et pendant l'envoi.
    • securityErrorHandler() : écoute l'événement securityError, qui est distribué en cas de tentative d'accès au XMLSocket avec un paramètre de sécurité de lecture locale incorrect ou avec un numéro de port inférieur à 1024.
    • ioErrorHandler() : écoute l'événement ioError, qui se produit uniquement en cas d'échec d'une opération d'envoi ou de réception de données.

Remarques :


package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.XMLSocket;

    public class XMLSocketExample extends Sprite {
        private var hostName:String = "localhost";
        private var port:uint = 8080;
        private var socket:XMLSocket;

        public function XMLSocketExample() {
            socket = new XMLSocket();
            configureListeners(socket);
            socket.connect(hostName, port);
        }

        public function send(data:Object):void {
            socket.send(data);
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.CLOSE, closeHandler);
            dispatcher.addEventListener(Event.CONNECT, connectHandler);
            dispatcher.addEventListener(DataEvent.DATA, dataHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        }

        private function closeHandler(event:Event):void {
            trace("closeHandler: " + event);
        }

        private function connectHandler(event:Event):void {
            trace("connectHandler: " + event);
        }

        private function dataHandler(event:DataEvent):void {
            trace("dataHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
    }
}




 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/net/XMLSocket.html