Paquete | flash.net |
Clase | public class XMLSocket |
Herencia | XMLSocket EventDispatcher Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- Los mensajes XML se envían a través de una conexión de socket ininterrumpida TCP/IP full-duplex.
- Cada mensajes XML es un documento XML completo terminado en un byte cero (0).
- Pueden enviarse y recibirse un número ilimitado de mensajes XML a través de una misma conexión XMLSocket.
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.
Es posible que los archivos SWF del entorno limitado local con sistema de archivos no utilicen sockets.
Los archivos de política de socket del host de destino especifican los host desde los que los archivos SWF pueden realizar conexiones de socket y los puertos en los que se pueden llevar a cabo estas conexiones. Los requisitos de seguridad relativos a los archivos de política de socket han llegado a ser más estrictos en las últimas versiones de Flash Player. En todas las versiones de Flash Player, Adobe recomienda el uso de un archivo de política de socket; en algunos casos, es necesario un archivo de este tipo. Por lo tanto, si está utilizando objetos XMLSocket, asegúrese de que el host de destino proporcione un archivo de política de socket, si es necesario.
En la siguiente lista se resumen los requisitos para los archivos de política de socket en las distintas versiones de Flash Player:
- En Flash Player 9.0.124.0 y versiones posteriores, se requiere un archivo de política de socket para todas las conexiones XMLSocket. Es decir, es necesario un archivo de política de socket en el host de destino independientemente del puerto en el que se realice la conexión y se requiere aunque la conexión se vaya a llevar a cabo en un puerto en el mismo host en el que está disponible el archivo SWF.
- En Flash Player 9.0.115.0 y versiones anteriores, si desea conectarse a un número de puerto inferior a 1024, o bien, a un host distinto al que sirve el archivo SWF, es necesario un archivo de política de socket en el host de destino.
- En Flash Player 9.0.115.0, aunque no es necesario ningún archivo de política de socket, aparece una advertencia cuando se usa el Reproductor de depuración de Flash si el host de destino no sirve ningún archivo de política de socket.
Sin embargo, en Adobe AIR, el contenido del entorno limitado de seguridad de la aplicación
(contenido instalado con la aplicación de AIR) no está limitado por estas restricciones de seguridad.
Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.
Elementos de API relacionados
Propiedad | Definido por | ||
---|---|---|---|
connected : Boolean [solo lectura]
Indica si este objeto XMLSocket está conectado actualmente. | XMLSocket | ||
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
timeout : int
Indica el número de milisegundos para esperar una conexión. | XMLSocket |
Método | Definido por | ||
---|---|---|---|
Crea un nuevo objeto XMLSocket. | XMLSocket | ||
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 | ||
Establece una conexión con el servidor de Internet especificado mediante el puerto TCP indicado. | XMLSocket | ||
Distribuye un evento en el flujo del evento. | EventDispatcher | ||
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento. | EventDispatcher | ||
Indica si un objeto tiene definida una propiedad especificada. | Object | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
Elimina un detector del objeto EventDispatcher. | EventDispatcher | ||
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 | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object | ||
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 |
Evento | Resumen | Definido por | ||
---|---|---|---|---|
[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos. | 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 | |||
[evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos. | 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 |
connected | propiedad |
connected:Boolean
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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
Elementos de API relacionados
timeout | propiedad |
timeout:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Indica el número de milisegundos para esperar una conexión.
Si la conexión no se realiza en el tiempo especificado, se produce un error de conexión. El valor predeterminado es 20,000 (veinte segundos).
Implementación
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Información sobre |
public function XMLSocket(host:String = null, port:int = 0)
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea un nuevo objeto XMLSocket. Si no se especifica ningún parámetro, se crea un socket desconectado inicialmente. Si se especifican parámetros, se intenta realizar la conexión con el host y el puerto especificados.
Nota: se recomienda encarecidamente el uso del formulario constructor sin parámetros, posteriormente la adición de todos los detectores de eventos y, a continuación, la llamada al método connect
con los parámetros host
y port
. Esta secuencia garantiza que todos los detectores de eventos funcionen correctamente.
host:String (default = null ) — Nombre de dominio DNS completo o una dirección IP con formato .222.333.444. En Flash Player 9.0.115.0 y AIR 1.0, y en versiones posteriores, es posible especificar direcciones IPv6, como rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]. 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 ) — Número de puerto TCP en el host de destino utilizado para establecer una conexión. En Flash Player 9.0.124.0 y versiones posteriores, el host de destino debe servir un archivo de política de socket especificando que las conexiones de socket se permiten desde el host que sirve el archivo SWF hasta el puerto especificado. En versiones anteriores de Flash Player, un archivo de política de socket es necesario sólo si desea conectarse a un número de puerto inferior a 1024, o bien, a un host distinto al que sirve el archivo SWF.
|
Elementos de API relacionados
close | () | método |
public function close():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
.
Elementos de API relacionados
connect | () | método |
public function connect(host:String, port:int):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Establece una conexión con el servidor de Internet especificado mediante el puerto TCP indicado.
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 que llama a XMLSocket.connect()
. Por ejemplo, si el archivo de llamada se descargara de www.adobe.com, especificando null
para el parámetro de host, significa que se está conectando con www.adobe.com.
Asimismo, se puede impedir que un archivo 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 obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.
Parámetros
host:String — Nombre de dominio DNS completo o una dirección IP con formato 111.222.333.444. También puede especificar null para conectarse al servidor host en el que se encuentra el archivo SWF. Si el archivo SWF que realiza la llamada se ejecuta en un navegador web, el valor de host debe pertenecer al mismo dominio que el archivo.
| |
port:int — Número de puerto TCP en el host de destino utilizado para establecer una conexión. En Flash Player 9.0.124.0 y versiones posteriores, el host de destino debe servir un archivo de política de socket especificando que las conexiones de socket se permiten desde el host que sirve el archivo SWF hasta el puerto especificado. En versiones anteriores de Flash Player, un archivo de política de socket es necesario sólo si desea conectarse a un número de puerto inferior a 1024, o bien, a un host distinto al que sirve el archivo SWF.
|
Eventos
securityError: — Una operación de conexión ha intentado conectarse a un host situado fuera del entorno limitado de seguridad del llamador, o a un puerto que requiere un archivo de política de socket. Puede solucionar este problema utilizando un archivo de política de socket en el host de destino.
| |
data: — Se distribuye cuando se reciben los datos sin formato.
| |
connect: — Se distribuye cuando se establece una conexión de red.
|
Emite
SecurityError — Los archivos locales que no son de confianza no pueden comunicarse en Internet. Puede solucionar esta limitación reclasificando el archivo como archivo local con acceso a red o archivo de confianza.
| |
SecurityError — No se puede especificar un puerto de socket superior a 65535.
|
Elementos de API relacionados
send | () | método |
public function send(object:*):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
Elementos de API relacionados
close | Evento |
flash.events.Event
propiedad Event.type =
flash.events.Event.CLOSE
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
.
Event.CLOSE
define el valor de la propiedad type
de un objeto de evento close
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
target | Objeto cuya conexión se ha cerrado. |
connect | Evento |
flash.events.Event
propiedad Event.type =
flash.events.Event.CONNECT
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Se distribuye tras realizar una llamada correcta al método XMLSocket.connect()
.
Event.CONNECT
define el valor de la propiedad type
de un objeto de evento connect
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
target | Objeto Socket o XMLSocket que ha establecido una conexión de red. |
data | Evento |
flash.events.DataEvent
propiedad DataEvent.type =
flash.events.DataEvent.DATA
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Se distribuye una vez enviados o recibidos datos sin formato.
Define el valor de la propiedadtype
de un objeto de evento data
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
data | Datos sin procesar cargados en Flash Player o en Adobe AIR. |
target | Objeto XMLSocket que recibe los datos. |
ioError | Evento |
flash.events.IOErrorEvent
propiedad IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 propiedadtype
de un objeto de evento ioError
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
errorID | Un número de referencia asociado al error concreto (sólo AIR). |
target | El objeto de red en el que se produce el error de entrada/salida. |
text | Texto que se mostrará como mensaje de error. |
securityError | Evento |
flash.events.SecurityErrorEvent
propiedad SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
SecurityErrorEvent.SECURITY_ERROR
define el valor de la propiedad type
de un objeto de evento securityError
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
target | El objeto de red que informa sobre le error de seguridad. |
text | Texto que se mostrará como mensaje de error. |
Elementos de API relacionados
- El constructor XMLSocketExample crea una instancia de XMLSocket denominada
socket
y transfieresocket
aConfigureListeners()
(descrito a continuación). Posteriormente, llama al métodoconnect()
de XMLSocket utilizando el nombre de host "localhost" y el número de puerto8080
. - Se llama al método
configureListeners()
, que añade detectores para cada uno de los eventos XMLSocket admitidos:closeHandler()
: detecta el eventoclose
, que se distribuye una vez cerrada la conexión de red.connectHandler()
: detecta el eventoconnect
, que se distribuye al establecer la conexión de red.dataHandler()
: detecta eventosdata
, que se distribuyen cada vez que XMLSocket recibe nuevos datos.progressHandler()
: detecta eventosprogress
, que se distribuyen cuando se realiza una llamada asend()
y durante el proceso de envío.securityErrorHandler()
: detecta eventossecurityError
, 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 eventosioError
, que se producirían sólo si hay algún error en el envío y la recepción de los datos.
Notas:
- Debe compilar el archivo SWF con la opción "Seguridad de reproducción local" definida como "Acceso sólo a la red".
- Necesita un servidor que se ejecute en su dominio utilizando el puerto 8080 para que este ejemplo funcione.
- Si está ejecutando Flash Player 9.0.124.0 o posterior, debe colocar un archivo de política de socket en el servidor que permite las conexiones de socket desde su dominio con el puerto 8080. Para obtener más información sobre los archivos de política de socket, consulte el tema del centro de desarrollo de Flash Player sobre la configuración de un servidor de archivos de política de socket.
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, 02:12 PM Z