Noções básicas de rede e comunicação



Introdução à rede e comunicação

Freqüentemente, ao criar aplicativos do ActionScript mais complexos, você necessita fazer a comunicação com scripts de servidor ou carregar dados de arquivos XML ou de texto externos. O pacote flash.net contém classes para enviar e receber dados pela Internet (por exemplo, para carregar conteúdo de URLs remotas, comunicar-se com outras ocorrências do Flash Player ou do AIR, além de conectar-se a sites remotos.

No ActionScript 3.0, você pode carregar arquivos externos com as classes URLLoader e URLRequest. Assim, você pode usar uma classe específica para acessar os dados, dependendo do tipo de dados carregado. Por exemplo, se o conteúdo remoto é formatado como pares de nome e valor, use a classe URLVariables para analisar os resultados do servidor. Opcionalmente, se o arquivo carregado por meio das classes URLLoader e URLRequest for um documento XML remoto, você poderá analisá-lo usando o construtor de classes XML, o construtor de classe XMLDocument ou o método XMLDocument.parseXML(). Isso permite simplificar o código ActionScript, pois o código para carregar arquivos externos é o mesmo, independentemente de você usar URLVariables, XML ou alguma outra classe para analisar e trabalhar com os dados remotos.

O pacote flash.net também contém classes para outros tipos de comunicação remota. Entre elas estão a classe FileReference, para carregar e baixar arquivos de um servidor, as classes Socket e XMLSocket, que permitem a comunicação direta com computadores remotos via conexões de soquete e as classes NetConnection e NetStream, utilizadas para comunicação com um servidor de recursos específicos do Flash, como o Flash Media Server e servidores Flash Remoting, bem como para o carregamento de arquivos de vídeo.

Por fim, o pacote flash.net inclui classes para comunicação no computador local dos usuários. Entre elas está a classe LocalConnection, que permite a comunicação entre dois ou mais arquivos SWF em execução em um único computador, e a classe SharedObject, que permite o armazenamento de dados no computador do usuário e os recupera no momento em que forem retornados para o aplicativo.

Tarefas comuns de comunicação e rede

A lista a seguir descreve as tarefas mais comuns, que talvez você queira realizar, relacionadas à comunicação externa do ActionScript; estas tarefas são descritas neste capítulo:

  • Carregar dados a partir de um arquivo externo ou um script de servidor

  • Enviar dados para um script de servidor

  • Estabelecer a comunicação com outros arquivos SWF locais

  • Trabalhar com conexões de soquete binário

  • Estabelecer a comunicação com soquetes XML

  • Armazenar dados locais persistentes

  • Upload de arquivos em um servidor

  • Baixar arquivos de um servidor para a máquina do usuário

Conceitos e termos importantes

A lista de referência a seguir contém termos importantes usados neste capítulo:

  • Dados externos: são dados armazenados de algum modo fora do arquivo SWF e carregados nesse mesmo arquivo quando necessário. Esses dados podem ser armazenados em um arquivo que é carregado diretamente, em um banco de dados ou de algum modo que permita recuperá-los ao chamar scripts ou programas em execução no servidor.

  • Variáveis codificadas por URL: o formato codificado por URL permite representar diversas variáveis (pares de nomes e valores de variáveis) em uma única string de texto. Variáveis individuais são escritas no formato nome=valor. Cada variável (ou seja, cada par de nome e valor) é separada por caracteres E comercial, desta maneira: variável1=valor1&variável2=valor2. Desse modo, é possível enviar um número indefinido de variáveis como uma só mensagem.

  • Tipo MIME: é um código padrão usado para identificar o tipo de um determinado arquivo em comunicação via Internet. Qualquer tipo de arquivo possui um código específico, usado para identificá-lo. Ao enviar um arquivo ou uma mensagem, um computador (como um servidor Web ou uma ocorrência do Flash Player ou do AIR de usuário) especificará o tipo de arquivo que está sendo enviado.

  • HTTP: forma abreviada do termo em inglês Hypertext Transfer Protocol, um formato padrão para apresentação de páginas da Web e vários outros tipos de conteúdo enviados pela Internet.

  • Método de solicitação: quando um programa como o Flash Player ou um navegador da Web envia uma mensagem (chamada de solicitação HTTP) para um servidor Web, qualquer dado que está sendo enviado pode ser incorporado à solicitação de duas maneiras, por meio dos métodos de solicitação GET e POST. No servidor, o programa que recebe a solicitação precisará localizar os dados no trecho adequado da solicitação, por isso o método de solicitação usado para enviar dados do ActionScript deve corresponder ao método de solicitação usado para ler esses dados no servidor.

  • Conexão de soquete: é uma conexão persistente para comunicação entre dois computadores.

  • Upload: é o envio de arquivos para outro computador.

  • Download: é usado para recuperar um arquivo contido em outro computador.

Trabalho com endereços IPv6

O Flash Player 9.0.115.0 e suas versões posteriores oferecem suporte a IPv6 (Internet Protocol versão 6). O IPv6 é uma versão do Internet Protocol que oferece suporte a endereços de 128 bits (um aprimoramento do protocolo IPv4 anterior, que oferece suporte a endereços de 32 bits). Talvez seja necessário ativar o IPv6 nas suas interfaces de rede. Para obter mais informações, consulte a Ajuda do sistema operacional que está hospedando os dados.

Se o IPv6 for suportado no sistema de host, será possível especificar endereços literais IPv6 numéricos em URLs, contidos entre parênteses ([]), como apresentado seguir:

rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]:1935/test

O Flash Player retorna valores IPv6 literais, de acordo com as regras a seguir:

  • O Flash Player retorna o formato longo da string para endereços IPv6.

  • O valor de IP não possui abreviações com dois pontos.

  • Os dígitos hexadecimais são expressos apenas em letras minúsculas.

  • Os endereços IPv6 são apresentados entre parênteses ([]).

  • Cada quarteto de endereço é transformado em dígitos hexadecimais de 0 a 4, com os zeros à esquerda omitidos.

  • Um quarteto de endereço composto por zeros é transformado em um único zero (e não em dois-pontos duplos), exceto se mencionado na lista de exceções a seguir.

Os valores IPv6 retornados pelo Flash Player têm as seguintes exceções:

  • Um endereço IPv6 não especificado (somente zeros) é transformado em [::].

  • O endereço IPv6 de retorno ou de host local é transformado em [::1].

  • Os endereços IPv4 mapeados (convertido para IPv6) são transformados em [::ffff:a.b.c.d], em que a.b.c.d corresponde a um típico valor decimal IPv4 separado por pontos.

  • Os endereços IPv4 compatíveis são transformados em [::a.b.c.d], em que a.b.c.d corresponde a um típico valor decimal IPv4 separado por pontos.

Teste dos exemplos do capítulo

Talvez você queira testar as listagens de código de exemplo durante a leitura deste capítulo. Muitas das listagens de códigos desse capítulo carregam dados externos ou realizam algum tipo de comunicação. Entre esses exemplos, em geral, estão incluídas as chamadas da função trace(), para que os resultados da execução do exemplo sejam exibidos no Painel de saída. Outros exemplos executam determinadas funções, como o upload de um arquivo para um servidor. O teste desses exemplos envolverá a interação com o arquivo SWF e a confirmação da ação que eles estão incumbidos de executar.

Os exemplos de código são classificados em duas categorias. Algumas das listagens de exemplo são escritas considerando que o código esteja em um script autônimo, que pode estar anexado a um quadro-chave de um documento Flash, por exemplo. Para testar os exemplos:

  1. Crie um novo documento Flash.

  2. Selecione o quadro-chave no Quadro 1 da Linha de tempo e abra o painel Ações.

  3. Copie a listagem de código no painel Script.

  4. No menu principal, selecione Controle > Testar filme para criar o arquivo SWF e testar o exemplo.

Outras listagens de códigos de exemplo são escritas como uma classe; espera-se que a classe de exemplo sirva como a classe do documento para o documento Flash. Para testar os exemplos:

  1. Crie um documento Flash vazio e salve-o no seu computador.

  2. Crie e salve um novo arquivo do ActionScript no mesmo diretório do documento Flash. O nome do arquivo deve corresponder ao nome da classe na listagem de código. Por exemplo, se a listagem de código define uma classe chamada “UploadTest”, salve o arquivo ActionScript como “UploadTest.as”.

  3. Copie a listagem de código no arquivo do ActionScript e salve o arquivo.

  4. No documento Flash, clique em uma parte em branco do Palco ou da área de trabalho para ativar o Inspetor de propriedades do documento.

  5. No Inspetor de propriedades, no campo Classe do documento, digite o nome da classe ActionScript que você copiou do texto.

  6. Execute o programa usando o comando Controlar > Testar filme e teste o exemplo.

Por fim, alguns dos exemplos deste capítulo envolvem a interação com um programa em execução em um servidor. Esses exemplos incluem um código que pode ser usado para criar o programa de servidor necessário para testar o exemplo. Para isso, será necessário configurar os aplicativos apropriados em um computador definido como servidor Web para testar os exemplos.