Pacote | flash.net |
Classe | public class XMLSocket |
Herança | XMLSocket EventDispatcher Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- Mensagens XML são enviadas por meio de uma conexão de soquete de fluxo TCP/IP full-duplex.
- Cada mensagem XML é um documento XML completo, terminado por um byte zero (0).
- Um número ilimitado de mensagens XML pode ser despachado e recebido por meio de uma única conexão XMLSocket.
Pode ser desafiador configurar um servidor para comunicar-se com o objeto XMLSocket. Se o seu aplicativo não exigir interatividade em tempo real, use a classe URLLoader em vez da classe XMLSocket.
Para usar os métodos da classe XMLSocket, primeiro é necessário usar o construtor, new XMLSocket
, para criar um objeto XMLSocket.
Os arquivos SWF da caixa de proteção local com sistema de arquivos podem não usar soquetes.
Os arquivos de diretivas de soquete no host de destino especificam os hosts a partir dos quais os arquivos SWF podem fazer conexões de soquete e as portas nas quais essas conexões podem ser feitas. Os requisitos de segurança relativos a arquivos de diretivas de soquete tornaram-se mais rigorosos nas últimas versões do Flash Player. Em todas as versões do Flash Player, a Adobe recomenda o uso de um arquivo de diretivas de soquete e, em algumas circunstâncias, ele é obrigatório. Portanto, se você estiver usando objetos XMLSocket, verifique se o host de destino fornece um arquivo de diretivas de soquete, quando necessário.
A lista a seguir resume os requisitos de arquivos de diretivas de soquete em diversas versões do Flash Player:
- No Flash Player 9.0.124.0 e versões posteriores, é obrigatório um arquivo de diretivas de soquete para qualquer conexão XMLSocket. Ou seja, é obrigatório um arquivo de diretivas de soquete no host de destino, independentemente da porta à qual você está se conectando, mesmo que seja uma porta no mesmo host que está fornecendo o arquivo SWF.
- No Flash Player versões 9.0.115.0 e anteriores, para conectar-se a uma porta de número abaixo de 1024 ou para conectar-se a um host que não seja aquele que fornece o arquivo SWF, é obrigatório um arquivo de diretivas de soquete no host de destino.
- No Flash Player 9.0.115.0, mesmo que não seja obrigatório um arquivo de diretivas de soquete, será exibido um aviso ao usar o Flash Debug Player, caso o host de destino não forneça um arquivo de diretivas de soquete.
Contudo, no Adobe AIR, o conteúdo na caixa de proteção de segurança application
(conteúdo instalado com o Adobe AIR) não é restringido por essas limitações de segurança.
Para obter mais informações relacionadas à segurança, consulte o tópico do Centro dos desenvolvedores do Flash Player Security.
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
connected : Boolean [somente leitura]
Indica se este objeto XMLSocket está conectado no momento. | XMLSocket | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
timeout : int
Indica o número de milissegundos de espera por uma conexão. | XMLSocket |
Método | Definido por | ||
---|---|---|---|
Cria um novo objeto XMLSocket. | XMLSocket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento. | EventDispatcher | ||
Encerra a conexão especificada pelo objeto XMLSocket. | XMLSocket | ||
Estabelece uma conexão com o host da Internet especificado usando a porta TCP especificada. | XMLSocket | ||
Envia um evento para o fluxo de eventos. | EventDispatcher | ||
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. | EventDispatcher | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Remove um ouvinte do objeto EventDispatcher. | EventDispatcher | ||
Converte os dados ou objetos XML especificados no parâmetro "objeto" em uma string e a transmite ao servidor, seguida de um byte zero (0). | XMLSocket | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Retorna o valor primitivo do objeto especificado. | Object | ||
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. | EventDispatcher |
Evento | Resumo | Definido por | ||
---|---|---|---|---|
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo. | EventDispatcher | |||
Despachado quando o servidor fecha a conexão de soquete. | XMLSocket | |||
Despachado após uma chamada bem-sucedida para o método XMLSocket.connect(). | XMLSocket | |||
Despachado após o envio ou o recebimento de dados brutos. | XMLSocket | |||
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo. | EventDispatcher | |||
Despachado quando ocorre um erro de entrada/saída que resulta na falha de uma operação de envio ou recebimento. | XMLSocket | |||
Despachado se uma chamada para o método XMLSocket.connect() tentar se conectar a um servidor fora da área de segurança do chamador ou a uma porta menor do que 1024. | XMLSocket |
connected | propriedade |
connected:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Indica se este objeto XMLSocket está conectado no momento. Você também pode verificar se a conexão foi bem-sucedida, registrando o evento connect
e ioError
.
Implementação
public function get connected():Boolean
Elementos da API relacionados
timeout | propriedade |
timeout:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Indica o número de milissegundos de espera por uma conexão.
Se a conexão não for estabelecida dentro do tempo especificado, ela falhará. O valor padrão é 20.000 (20 segundos).
Implementação
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Construtor |
public function XMLSocket(host:String = null, port:int = 0)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Cria um novo objeto XMLSocket. Se nenhum parâmetro for especificado, um soquete inicialmente desconectado será criado. Se parâmetros forem especificados, uma conexão será tentada com o host e a porta especificados.
Observação: É altamente recomendável usar a forma do construtor sem parâmetros, adicionar os ouvintes de evento e chamar o método connect
com parâmetros host
e port
. Essa sequência garante que todos os ouvintes de evento funcionem corretamente.
host:String (default = null ) — Um nome de domínio DNS totalmente qualificado ou um endereço IP no formato .222.333.444. No Flash Player 9.0.115.0 e no AIR 1.0 e posteriores, você pode especificar endereços IPv6, por exemplo, rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]. Você também pode especificar null para se conectar ao servidor host no qual reside o arquivo SWF. Se o arquivo SWF que emite essa chamada estiver em execução em um navegador da Web, host deverá estar no mesmo domínio que esse arquivo SWF.
| |
port:int (default = 0 ) — O número da porta TCP no host de destino usado para estabelecer uma conexão. No Flash Player 9.0.124.0 e posteriores, o host de destino deve fornecer um arquivo de diretivas de soquete que especifique que são permitidas conexões de soquete do host que fornece o arquivo SWF com a porta especificada. Nas versões anteriores do Flash Player, será obrigatório um arquivo de diretivas de soquete somente para conectar-se a uma porta de número abaixo de 1024 ou para conectar-se a um host que não seja aquele que fornece o arquivo SWF.
|
Elementos da API relacionados
close | () | método |
public function close():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Encerra a conexão especificada pelo objeto XMLSocket. O evento close
somente é despachado quando o servidor encerra a conexão; ele não é despachado quando você chama o método close()
.
Elementos da API relacionados
connect | () | método |
public function connect(host:String, port:int):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Estabelece uma conexão com o host da Internet especificado usando a porta TCP especificada.
Se você especificar null
para o parâmetro host
, o host contatado será aquele no qual reside o arquivo que chama XMLSocket.connect()
. Por exemplo, se o arquivo de chamada foi baixado de www.adobe.com, a especificação de null
para o parâmetro host significa que você está estabelecendo conexão com www.adobe.com.
Você pode impedir o arquivo de usar esse método configurando o parâmetro allowNetworking
das marcas object
e embed
na página HTML com o conteúdo SWF.
Para obter mais informações, consulte o tópico do Centro de desenvolvedores do Flash Player: Security.
Parâmetros
host:String — Um nome de domínio DNS totalmente qualificado ou um endereço IP no formato 111.222.333.444. Você também pode especificar null para se conectar ao servidor host no qual reside o arquivo SWF. Se o arquivo de chamada for um arquivo SWF em execução em um navegador da Web, host deverá estar no mesmo domínio do arquivo.
| |
port:int — O número da porta TCP no host de destino usado para estabelecer uma conexão. No Flash Player 9.0.124.0 e posteriores, o host de destino deve fornecer um arquivo de diretivas de soquete que especifique que são permitidas conexões de soquete do host que fornece o arquivo SWF com a porta especificada. Nas versões anteriores do Flash Player, será obrigatório um arquivo de diretivas de soquete somente para conectar-se a uma porta de número abaixo de 1024 ou para conectar-se a um host que não seja aquele que fornece o arquivo SWF.
|
Eventos
securityError: — Uma operação de conexão tentou se conectar a um host fora da área de segurança do chamador ou a uma porta que exige um arquivo de diretivas de soquete. Solucione o problema usando um arquivo de diretivas de soquete no host de destino.
| |
data: — Despachado quando dados brutos foram recebidos.
| |
connect: — Despachado quando uma conexão de rede foi estabelecida.
|
Lança
SecurityError — Os arquivos locais não confiáveis não podem se comunicar com a Internet. Contorne essa limitação reclassificando o arquivo como local com rede ou confiável.
| |
SecurityError — Não é possível especificar uma porta de soquete superior a 65535.
|
Elementos da API relacionados
send | () | método |
public function send(object:*):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Converte os dados ou objetos XML especificados no parâmetro objeto
em uma string e a transmite ao servidor, seguida de um byte zero (0). Se objeto
for um objeto XML, a string será a representação textual XML desse objeto XML. A operação de envio é assíncrona; ela é retornada imediatamente, mas os dados podem ser transmitidos mais tarde. O método XMLSocket.send()
não retorna um valor indicando se os dados foram transmitidos com êxito.
Se você não conectar o objeto XMLSocket ao servidor usando XMLSocket.connect()
), a operação XMLSocket.send()
falhará.
Parâmetros
object:* — Um objeto XML ou outros dados a serem transmitidos ao servidor.
|
Lança
IOError — O objeto XMLSocket não está conectado ao servidor.
|
Elementos da API relacionados
close | Evento |
flash.events.Event
propriedade Event.type =
flash.events.Event.CLOSE
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Despachado quando o servidor fecha a conexão de soquete. O evento close
somente é despachado quando o servidor encerra a conexão; ele não é despachado quando você chama o método XMLSocket.close()
.
Event.CLOSE
define o valor da propriedade type
de um objeto de evento close
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | O objeto cuja conexão foi fechada. |
connect | Evento |
flash.events.Event
propriedade Event.type =
flash.events.Event.CONNECT
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Despachado após uma chamada bem-sucedida para o método XMLSocket.connect()
.
Event.CONNECT
define o valor da propriedade type
de um objeto de evento connect
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | O soquete ou objeto XMLSocket que estabeleceu uma conexão de rede. |
data | Evento |
flash.events.DataEvent
propriedade DataEvent.type =
flash.events.DataEvent.DATA
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Despachado após o envio ou o recebimento de dados brutos.
Define o valor da propriedadetype
de um objeto de evento data
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
dados | Dados brutos carregados no Flash Player ou Adobe AIR. |
target | O objeto XMLSocket que está recebendo os dados. |
ioError | Evento |
flash.events.IOErrorEvent
propriedade IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Despachado quando ocorre um erro de entrada/saída que resulta na falha de uma operação de envio ou recebimento.
Define o valor da propriedadetype
de um objeto de evento ioError
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
errorID | Um número de referência associado ao erro específico (somente AIR). |
target | O objeto de rede que está recebendo o erro de entrada/saída. |
text | Texto a ser exibido como uma mensagem de erro. |
securityError | Evento |
flash.events.SecurityErrorEvent
propriedade SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Despachado se uma chamada para o método XMLSocket.connect()
tentar se conectar a um servidor fora da área de segurança do chamador ou a uma porta menor do que 1024.
SecurityErrorEvent.SECURITY_ERROR
define o valor da propriedade type
de um objeto de evento securityError
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | O objeto de rede que reporta o erro de segurança. |
text | Texto a ser exibido como uma mensagem de erro. |
Elementos da API relacionados
- O construtor XMLSocketExample cria uma ocorrência de XMLSocket denominada
socket
e transmitesocket
paraConfigureListeners()
(descrito a seguir) e então chama o métodoconnect()
de XMLSocket usando o nome de host "localhost" e o número de porta8080
. - O método
configureListeners()
é então chamado, adicionando ouvintes para cada um dos eventos XMLSocket suportados:closeHandler()
: monitora o eventoclose
, que é despachado após o encerramento da conexão com a rede.connectHandler()
: monitora o eventoconnect
, despachado quando a conexão com a rede é estabelecida.dataHandler()
: monitora os eventosdata
, despachados sempre que XMLSocket recebe novos dados.progressHandler()
: monitora os eventosprogress
, despachados quando uma chamada asend()
foi feita e enquanto o envio está em andamento.securityErrorHandler()
: monitora eventossecurityError
, que poderiam ser despachados se fosse feita uma tentativa de acessar XMLSocket com a configuração incorreta de segurança de reprodução local ou usando uma porta menor do que 1024.ioErrorHandler()
: monitora eventosioError
, que ocorreriam somente se uma operação de envio ou recebimento de dados falhasse.
Observações:
- É necessário compilar o arquivo SWF com a "Segurança de reprodução local" definida como "Acessar somente a rede".
- Para esse exemplo funcionar, você precisará de um servidor em execução no domínio usando a porta 8080.
- Se você estiver executando o Flash Player 9.0.124.0 ou posterior, será necessário colocar um arquivo de diretivas de soquete no servidor que permita conexões de soquete do domínio com a porta 8080. Para obter informações sobre como fornecer arquivos de diretivas de soquete, consulte o Tópico do Centro de desenvolvedores do Adobe Flash Player: Setting up a socket policy file server (Configuração do servidor de arquivos de diretivas de soquete).
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); } } }
Wed Jun 13 2018, 11:10 AM Z