Paqueteflash.net
Clasepublic class XMLSocket
HerenciaXMLSocket Inheritance EventDispatcher Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase XMLSocket implementa sockets de cliente que permiten al equipo que ejecuta Flash Player comunicarse con un equipo servidor identificado mediante una dirección IP o un nombre de dominio. La clase XMLSocket es útil para aplicaciones de servidor que requieran una baja latencia, como los sistemas de chat en tiempo real. Una solución de chat tradicional basada en HTTP suele sondear el servidor y descargar los mensajes nuevos mediante una solicitud HTTP. Por contra, una solución de chat con XMLSocket mantiene una conexión abierta con el servidor, lo que permite que el servidor envíe de inmediato los mensajes entrantes sin que se produzca una solicitud del cliente. Para utilizar la clase XMLSocket, el equipo servidor debe ejecutar un demonio que entienda el protocolo utilizado por la clase XMLSocket. El protocolo se describe en la siguiente lista:

El método XMLSocket.connect() sólo se puede conectar con números de puerto TCP superiores o iguales a 1024. Como consecuencia de esta limitación, el servidor daemons que se comunica con el objeto XMLSocket también debe asignarse a números de puerto superiores o iguales a 1024. Los números de puerto inferiores a 1024 suelen utilizarse para servicios del sistema como FTP, Telnet y HTTP, por lo que los objetos XMLSocket no pueden utilizar estos puertos por razones de seguridad. La restricción de número de puerto limita la posibilidad de que se pueda acceder y hacer un uso indebido de estos recursos.

La configuración de un servidor para que se comunique con el objeto XMLSocket puede resultar compleja. Si la aplicación no requiere interactividad en tiempo real, utilice la clase URLLoader en vez de la clase XMLSocket. Para utilizar los métodos de la clase XMLSocket, primero debe utilizar el constructor, new XMLSocket, para crear un objeto XMLSocket.

Cuando utilice esta clase, tenga en cuenta el modelo de seguridad de Flash Player:

Para más información, consulte las siguientes secciones:

Ver los ejemplos

Véase también

flash.net.URLLoader.load()
flash.net.URLLoader
Conexiones de socket


Propiedades públicas
 PropiedadDefinido por
  connected : Boolean
[read-only] Indica si este objeto XMLSocket está conectado actualmente.
XMLSocket
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
XMLSocket(host:String = null, port:int = 0)
Crea un nuevo objeto XMLSocket.
XMLSocket
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
EventDispatcher
  
Cierra la conexión especificada por el objeto XMLSocket.
XMLSocket
  
connect(host:String, port:int):void
Establece una conexión con el servidor de Internet especificado mediante el puerto TCP indicado.
XMLSocket
 Inherited
Distribuye un evento en el flujo del evento.
EventDispatcher
 Inherited
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
EventDispatcher
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Elimina un detector del objeto EventDispatcher.
EventDispatcher
  
send(object:*):void
Convierte el objeto XML o los datos especificados en el parámetro object en una cadena y la transmite al servidor seguida de un byte cero (0).
XMLSocket
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
 Inherited
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
EventDispatcher
Eventos
 Evento Resumen Definido por
 Inherited Se distribuye cuando Flash Player queda seleccionado por el sistema operativo y pasa a estar activo.EventDispatcher
   Se distribuye cuando el servidor cierra la conexión de socket.XMLSocket
   Se distribuye tras realizar una llamada correcta al método XMLSocket.connect().XMLSocket
   Se distribuye una vez enviados o recibidos datos sin formato.XMLSocket
 Inherited Se distribuye cuando Flash Player deja de estar seleccionado por el sistema operativo y pasa a estar inactivo.EventDispatcher
   Se distribuye cuando se produce un error de entrada o salida que provoca que una operación de envío o recepción se realice incorrectamente.XMLSocket
   Se distribuye si la llamada al método XMLSocket.connect() intenta conectar con un servidor fuera del entorno limitado de seguridad del elemento que realiza la llamada o con un puerto inferior al 1024.XMLSocket
Información sobre propiedades
connectedpropiedad
connected:Boolean  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Indica si este objeto XMLSocket está conectado actualmente. Para comprobar si la conexión es correcta, también se puede registrar para los eventos connect y ioError.


Implementación
    public function get connected():Boolean

Véase también

Información sobre constructores
XMLSocket()constructor
public function XMLSocket(host:String = null, port:int = 0)

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Crea un nuevo objeto XMLSocket. El objeto XMLSocket no está conectado inicialmente a ningún servidor. Debe llamar al método XMLSocket.connect() para conectar el objeto con un servidor.

Parámetros
host:String (default = null) — Un nombre de dominio DNS completo o una dirección IP con formato aaa.bbb.ccc.ddd. También puede especificar null para conectarse al servidor host en el que se encuentra el archivo SWF. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor host debe pertenecer al mismo dominio que el archivo SWF.
 
port:int (default = 0) — El número de puerto TCP en el host utilizado para establecer una conexión. El número de puerto debe ser 1024 o superior, a no ser que se utilice un archivo de política.

Véase también

Información sobre métodos
close()método
public function close():void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Cierra la conexión especificada por el objeto XMLSocket. El evento close sólo se distribuye si el servidor cierra la conexión; no se distribuye al llamar al método close().

Véase también

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

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Establece una conexión con el servidor de Internet especificado mediante el puerto TCP indicado. De forma predeterminada, sólo es posible conectar con el puerto 1024 o superiores, a no ser que se utilice un archivo de política.

Si especifica el valor null para el parámetro host, el servidor con el que se entra en contacto es en el que reside el archivo SWF que llama a XMLSocket.connect(). Por ejemplo, si el archivo SWF se ha descargado de www.adobe.com, especificar null para el parámetro host equivaldrá a introducir la dirección IP de www.adobe.com.

En archivos SWF que se ejecuten en una versión del reproductor anterior a Flash Player 7, host debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. Por ejemplo, un archivo SWF situado en www.adobe.com puede enviar o recibir variables de un archivo SWF situado en store.adobe.com porque ambos archivos se encuentran en el mismo superdominio, denominado adobe.com.

En archivos SWF de cualquier versión que se ejecuten en Flash Player 7 o posterior, host debe estar exactamente en el mismo dominio. Por ejemplo, un archivo SWF situado en www.adobe.com publicado para Flash Player 5, pero abierto en Flash Player 7 o en una versión posterior sólo puede enviar o recibir variables de archivos SWF que también se encuentren en www.adobe.com. Si desea enviar o recibir variables de un dominio diferente, puede colocar un archivo de política entre dominios en el servidor en el que se alberga el archivo SWF al que se está accediendo.

Asimismo, se puede impedir que un archivo SWF utilice este método si define el parámetro allowNetworking de las etiquetas object y embed de la página HTML que aloja el contenido SWF.

Para más información, consulte las siguientes secciones:

Parámetros

host:String — Un nombre de dominio DNS completo o una dirección IP con formato aaa.bbb.ccc.ddd. También puede especificar null para conectarse al servidor host en el que se encuentra el archivo SWF. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor host debe pertenecer al mismo dominio que el archivo SWF.
 
port:int — El número de puerto TCP en el host utilizado para establecer una conexión. El número de puerto debe ser 1024 o superior, a no ser que se utilice un archivo de política.


Eventos
securityError:SecurityErrorEvent — Un intento de operación de conexión con un servidor ajeno al entorno limitado de seguridad del elemento que realiza la llamada, o con un puerto inferior al 1024. Cualquiera de los dos problemas puede resolverse utilizando un archivo de política XMLSocket en el servidor.
 
data:DataEvent — Se distribuye cuando se reciben los datos sin formato.
 
connect:Event — Se distribuye cuando se establece una conexión de red.

Emite
SecurityError — Los archivos SWF locales que no son de confianza no pueden comunicarse en Internet. Puede solucionar este problema reclasificando el archivo SWF como archivo local de red o archivo de confianza.
 
SecurityError — No se puede especificar un puerto de socket superior a 65535.

Véase también

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

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Convierte el objeto XML o los datos especificados en el parámetro object en una cadena y la transmite al servidor seguida de un byte cero (0). Si object es un objeto XML, la cadena es una representación textual XML del objeto XML. La operación de envío (send) es asíncrona; se devuelve inmediatamente, pero puede que los datos se transmitan posteriormente. El método XMLSocket.send() no devuelve ningún valor que indique si los datos se han transmitido correctamente.

Si no conecta el objeto XMLSocket al servidor mediante XMLSocket.connect()), la operación XMLSocket.send() generará un error.

Parámetros

object:* — Un objeto XML u otros datos que se van a transmitir al servidor.


Emite
IOError — El objeto XMLSocket no está conectado al servidor.

Véase también

Información sobre eventos
close Evento
Tipo de objeto de evento: flash.events.Event
Event.type property = flash.events.Event.CLOSE

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye cuando el servidor cierra la conexión de socket. El evento close sólo se distribuye si el servidor cierra la conexión; no se distribuye al llamar al método XMLSocket.close().

Define el valor de la propiedad type de un objeto de evento close.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto cuya conexión se ha cerrado.
connect Evento  
Tipo de objeto de evento: flash.events.Event
Event.type property = flash.events.Event.CONNECT

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye tras realizar una llamada correcta al método XMLSocket.connect().

Define el valor de la propiedad type de un objeto de evento connect.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto Socket o XMLSocket que ha establecido una conexión de red.
data Evento  
Tipo de objeto de evento: flash.events.DataEvent
DataEvent.type property = flash.events.DataEvent.DATA

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye una vez enviados o recibidos datos sin formato.

Define el valor de la propiedad type de un objeto de evento data.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
dataDatos cargados en Flash Player.
targetObjeto XMLSocket que recibe los datos.
ioError Evento  
Tipo de objeto de evento: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye cuando se produce un error de entrada o salida que provoca que una operación de envío o recepción se realice incorrectamente.

Define el valor de la propiedad type de un objeto de evento ioError.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetEl objeto de red en el que se produce el error de entrada/salida.
textTexto que se mostrará como mensaje de error.
securityError Evento  
Tipo de objeto de evento: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye si la llamada al método XMLSocket.connect() intenta conectar con un servidor fuera del entorno limitado de seguridad del elemento que realiza la llamada o con un puerto inferior al 1024.

La constante SecurityErrorEvent.SECURITY_ERROR define el valor de la propiedad type de un objeto de evento securityError.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetEl objeto de red que informa sobre le error de seguridad.
textTexto que se mostrará como mensaje de error.

Véase también

Ejemplos Cómo utilizar los ejemplos
XMLSocketExample.as

En el ejemplo siguiente, se utiliza la clase XMLSocketExample para enviar datos utilizando un objeto XMLSocket y se imprime la información durante eventos XMLSocket. Esto se consigue con los pasos siguientes:
  1. El constructor XMLSocketExample crea una instancia de XMLSocket denominada socket y transfiere socket a ConfigureListeners() (descrito a continuación). Posteriormente, llama al método connect() de XMLSocket utilizando el nombre de host "localhost" y el número de puerto 8080.
  2. Se llama al método configureListeners(), que añade detectores para cada uno de los eventos XMLSocket admitidos:
    • closeHandler(): detecta el evento close, que se distribuye una vez cerrada la conexión de red.
    • connectHandler(): detecta el evento connect, que se distribuye al establecer la conexión de red.
    • dataHandler(): detecta eventos data, que se distribuyen cada vez que XMLSocket recibe nuevos datos.
    • progressHandler(): detecta eventos progress, que se distribuyen cuando se realiza una llamada a send() y durante el proceso de envío.
    • securityErrorHandler(): detecta eventos securityError, que se distribuirían si se intentase acceder al objeto XMLSocket con al configuración de seguridad de reproducción local errónea o si se utiliza un puerto inferior a 1024.
    • ioErrorHandler(): detecta eventos ioError, que se producirían sólo si hay algún error en el envío y la recepción de los datos.

Notas:


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);
        }
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/net/XMLSocket.html