Package | flash.net |
Classe | public class XMLSocket |
Héritage | XMLSocket EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- Les messages XML sont envoyés via une connexion socket à flux TCP/IP bidirectionnel simultané.
- Chaque message XML est un document XML complet, terminé par un octet nul (0).
- Un nombre illimité de messages XML peut être envoyé et reçu via une connexion XMLSocket.
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, utilisez tout d’abord le constructeur, new XMLSocket
, pour créer un objet XMLSocket.
Les fichiers SWF du sandbox local avec système de fichiers peuvent ne pas utiliser de sockets.
Les fichiers de régulation de socket situés sur l’hôte cible spécifient les hôtes à partir desquels les fichiers SWF peuvent établir des connexions de socket et les ports sur lesquels ces connexions peuvent être établies. Les exigences de sécurité relatives aux fichiers de régulation de socket sont devenues plus rigoureuses avec les dernières versions de Flash Player. Dans toutes les versions de Flash Player, Adobe recommande d’utiliser un fichier de régulation de socket ; dans certains cas, un tel fichier est même obligatoire. Ainsi, si vous utilisez des objets XMLSocket, assurez-vous que l’hôte cible fournisse au besoin un fichier de régulation de socket.
Voici une liste résumant les exigences relatives aux fichiers de régulation de socket dans les différentes versions de Flash Player :
- Dans Flash Player 9.0.124.0 et versions ultérieures, un fichier de régulation de socket est obligatoire pour toutes les connexions XMLSocket. Cela signifie qu’un fichier de régulation de socket doit obligatoirement se trouver sur l’hôte cible, quel que soit le port sur lequel s’établit la connexion, et est obligatoire même si vous vous connectez à un port situé sur l’hôte servant le fichier SWF.
- Dans Flash Player versions 9.0.115.0 et ultérieures, si vous souhaitez vous connecter à un numéro de port inférieur à 1024, ou à un hôte autre que celui qui sert le fichier SWF, un fichier de régulation de socket est obligatoire sur l’hôte cible.
- Dans Flash Player 9.0.115.0, même si le fichier de régulation de socket n’est pas obligatoire, l’utilisation du débogueur de Flash Player entraîne l’affichage d’un avertissement si l’hôte cible ne fournit pas de fichier de régulation de socket.
Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité application
(contenu installé avec l’application AIR) n’est pas soumis à ces restrictions de sécurité.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Plus d’exemples
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
connected : Boolean [lecture seule]
Indique si l’objet XMLSocket est actuellement connecté. | XMLSocket | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
timeout : int
Indique le délai d’attente d’une connexion, en millisecondes. | XMLSocket |
Méthode | Défini par | ||
---|---|---|---|
Crée un objet XMLSocket. | XMLSocket | ||
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 | ||
Etablit une connexion à l’hôte Internet spécifié en utilisant le port TCP indiqué. | XMLSocket | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
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 | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
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 | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
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énement | Synthèse | Défini par | ||
---|---|---|---|---|
[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active. | 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 | |||
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. | 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 |
connected | propriété |
connected:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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
Eléments de l’API associés
timeout | propriété |
timeout:int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Indique le délai d’attente d’une connexion, en millisecondes.
Si la connexion n’est pas établie pendant le délai spécifié, elle échoue. La valeur par défaut est de 20 000 (vingt secondes).
Implémentation
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Constructeur |
public function XMLSocket(host:String = null, port:int = 0)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crée un objet XMLSocket. En l’absence de paramètres, un socket initialement déconnecté est créé. Si des paramètres sont spécifiés, une tentative de connexion à l’hôte et au port indiqués est effectuée.
Remarque : il est fortement conseillé d’utiliser la forme du constructeur sans paramètre, d’ajouter ensuite des écouteurs d’événement éventuels, puis d’appeler la méthode connect
avec les paramètres host
et port
. Cette séquence garantit que tous les écouteurs d’événement fonctionnent correctement.
host:String (default = null ) — Nom de domaine DNS complet ou adresse IP au format 222.333.444. Dans Flash Player 9.0.115.0 et AIR 1.0 et les versions ultérieures, vous pouvez spécifier les adresses IPv6, telles que rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]. 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 utilisé sur l’hôte cible pour établir une connexion. Dans Flash Player 9.0.124.0 et les versions ultérieures, l’hôte cible doit fournir un fichier de régulation de socket spécifiant que les connexions de socket sont autorisées depuis l’hôte fournissant le fichier SWF vers le port spécifié. Dans les versions précédentes de Flash Player, le fichier de régulation de socket n’est obligatoire que si vous souhaitez vous connecter à un numéro de port inférieur à 1024 ou à un hôte autre que celui servant le fichier SWF.
|
Eléments de l’API associés
close | () | méthode |
public function close():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
.
Plus d’exemples
Eléments de l’API associés
connect | () | méthode |
public function connect(host:String, port:int):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Etablit une connexion à l’hôte Internet spécifié en utilisant le port TCP indiqué.
Si vous spécifiez null
pour le paramètre host
, l’hôte contacté est celui où réside le fichier appelant la méthode XMLSocket.connect()
. Par exemple, si le fichier appelant a été téléchargé à partir du site www.adobe.com, le fait de spécifier null
pour le paramètre host équivaut à se connecter à www.adobe.com.
Vous pouvez empêcher un fichier d’utiliser cette méthode en définissant le paramètre allowNetworking
des balises object
et embed
dans la page HTML qui comporte le contenu SWF.
Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Paramètres
host:String — Nom de domaine DNS complet ou adresse IP au format 111.222.333.444. Vous pouvez également spécifier null pour vous connecter au serveur hôte qui héberge le fichier SWF. Si le fichier appelant est un fichier SWF s’exécutant dans un navigateur Web, host doit appartenir au même domaine que le fichier.
| |
port:int — Numéro du port TCP utilisé sur l’hôte cible pour établir une connexion. Dans Flash Player 9.0.124.0 et les versions ultérieures, l’hôte cible doit fournir un fichier de régulation de socket spécifiant que les connexions de socket sont autorisées depuis l’hôte fournissant le fichier SWF vers le port spécifié. Dans les versions précédentes de Flash Player, le fichier de régulation de socket n’est obligatoire que si vous souhaitez vous connecter à un numéro de port inférieur à 1024 ou à un hôte autre que celui servant le fichier SWF.
|
Evénements
securityError: — Une opération de connexion a tenté de se connecter à un hôte situé hors du sandbox de sécurité de l’appelant ou à un port qui nécessite un fichier de régulation de socket. Pour contourner ces problèmes, utilisez un fichier de régulation de socket sur l’hôte cible.
| |
data: — Distribué lors de la réception de données brutes.
| |
connect: — Distribué lorsqu’une connexion réseau est établie.
|
Valeur émise
SecurityError — Les fichiers non approuvés au niveau local ne peuvent pas communiquer avec Internet. Pour contourner cette restriction, reclassifiez le fichier 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.
|
Plus d’exemples
Eléments de l’API associés
send | () | méthode |
public function send(object:*):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
Valeur émise
IOError — L’objet XMLSocket n’est pas connecté au serveur.
|
Plus d’exemples
Eléments de l’API associés
close | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.CLOSE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
.
Event.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 |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Objet dont la connexion a été fermée. |
connect | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.CONNECT
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué après un appel de la méthode XMLSocket.connect()
qui a abouti.
Event.CONNECT
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 |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Objet Socket ou XMLSocket qui a établi une connexion réseau. |
data | Evénement |
flash.events.DataEvent
propriété DataEvent.type =
flash.events.DataEvent.DATA
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
data | Les données brutes chargées dans Flash Player ou Adobe AIR. |
target | Objet XMLSocket recevant les données. |
ioError | Evénement |
flash.events.IOErrorEvent
propriété IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 d’événement ioError
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
errorID | Un numéro de référence associé à l’erreur spécifique (AIR uniquement). |
target | Objet réseau sur lequel l’erreur d’entrée/sortie s’est produite. |
text | Texte à afficher en tant que message d’erreur. |
securityError | Evénement |
flash.events.SecurityErrorEvent
propriété SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
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 |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Objet réseau signalant l’erreur de sécurité |
text | Texte à afficher en tant que message d’erreur. |
Eléments de l’API associés
- Le constructeur XMLSocketExample crée une occurrence de XMLSocket nommée
socket
et transmet lesocket
à la méthodeConfigureListeners()
(décrite ci-dessous), puis appelle la méthodeconnect()
de XMLSocket avec le nom d’hôte « localhost » et le numéro de port8080
. - 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énementclose
, qui est distribué après la fermeture de la connexion réseau.connectHandler()
: écoute l’événementconnect
, qui est distribué à l’ouverture de la connexion réseau.dataHandler()
: écoute l’événementdata
, qui est distribué chaque fois que le XMLSocket reçoit de nouvelles données.progressHandler()
: écoute l’événementprogress
, qui est distribué à chaque appel de la méthodesend()
et pendant l’envoi.securityErrorHandler()
: écoute l’événementsecurityError
, 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énementioError
, qui se produit uniquement en cas d’échec d’une opération d’envoi ou de réception de données.
Remarques :
- Vous devrez compiler le fichier SWF en définissant « Sécurité de lecture locale » sur « Accès au réseau uniquement ».
- Pour que cet exemple fonctionne, vous devez disposer d’un serveur s’exécutant sur votre domaine à l’aide du port 8080.
- Si vous exécutez Flash Player 9.0.124.0 ou une version ultérieure, vous devez placer sur votre serveur un fichier de régulation de socket autorisant les connexions de socket de votre domaine au port 8080. Pour plus d’informations sur la fourniture de fichiers de régulation de socket, voir la rubrique : Configuration d’un serveur de fichier de régulation de socket du Centre des développeurs de Flash Player.
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); if (hostName && port) { 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); } } }
Tue Jun 12 2018, 09:30 AM Z