Flash Remoting

Для оптимизации обмена данными между клиентом и сервером используйте технологии Flash Remoting и AMF.

Можно использовать формат XML для загрузки удаленного содержимого в SWF-файлы. Однако формат XML представляет собой открытый текст, который среда выполнения загружает и анализирует. Формат XML лучше подходит для приложений, загружающих ограниченный объем содержимого. При разработке приложения, загружающего большой объем содержимого, рассмотрите возможность использования технологии Flash Remoting и формата Action Message Format (AMF).

Формат AMF — это двоичный формат, используемый для обмена данными между сервером и средой выполнения. При использовании формата AMF уменьшается размер данных и время передачи. AMF является собственным форматом среды выполнения, поэтому при отправке в среду выполнения данных в формате AMF сериализация и десериализация на стороне клиента не требуются. Удаленный шлюз обрабатывает эти задачи. При отправке типа данных ActionScript на сервер удаленный шлюз обрабатывает сериализацию на сервере. Шлюз также отправляет на компьютер пользователя соответствующий тип данных. Этот тип данных связан с классом на сервере, предоставляющем набор методов, которые можно вызвать из среды выполнения. Шлюзы Flash Remoting включают шлюзы ZendAMF, FluorineFX, WebORB и BlazeDS, официальный шлюз Java Flash Remoting с открытым кодом от компании Adobe.

На следующем рисунке показана концепция технологии Flash Remoting.

В следующем примере класс NetConnection используется для подключения к шлюзу Flash Remoting.

// Create the NetConnection object 
var connection:NetConnection = new NetConnection (); 
  
// Connect to a Flash Remoting gateway 
connection.connect ("http://www.yourserver.com/remotingservice/gateway.php"); 
  
// Asynchronous handlers for incoming data and errors 
function success ( incomingData:* ):void 
{ 
    trace( incomingData ); 
} 
  
function error ( error:* ):void 
{ 
    trace( "Error occured" ); 
} 
  
// Create an object that handles the mapping to success and error handlers 
var serverResult:Responder = new Responder (success, error); 
  
// Call the remote method 
connection.call ("org.yourserver.HelloWorld.sayHello", serverResult, "Hello there ?");

Подключение к удаленному шлюзу — простой процесс. Однако с помощью технологии Flash Remoting он упрощается еще больше с использованием класса RemoteObject, включенного в пакет Adobe® Flex® SDK.

Примечание. Внешние SWC-файлы, например файлы из среды Flex, можно использовать в проекте Adobe® Flash® Professional. При использовании SWC-файлов можно работать с классом RemoteObject и его зависимостями без применения остальных компонентов пакета Flex SDK. Опытные разработчики при необходимости могут даже устанавливать связь с удаленным шлюзом непосредственно с использованием примитивного класса Socket.