Интеграция Flash с веб-приложениями> Обмен информацией с удаленными файлами > Использование объекта XMLSocket

Использование объекта XMLSocket

ActionScript предоставляет предопределенный XMLSocket объект, который позволяет открывать продолжительное соединение с сервером. Это позволяет отправлять информацию клиенту сразу по мере ее поступления. Без продолжительного соединения сервер должен ждать HTTP запрос. Так же продолжительное соединение позволяет избежать задержек в приложениях, работающих в реальном времени, как например ЧАТы. Данные посылаются по Socket-соединению, как одна строка в XML формате. Вы так же можете использовать XML объект для структурирования данных.

Чтобы установить Socket-соединение, необходимо создать приложение на сервере, которое будет ждать запрос на Socket-соединение и посылать ответ обратно Flash-клипу. Это серверное приложение можно написать на каком-либо языке программирования, например на Java.

Методы connect и send XMLSocket объектов используются для передачи XML-данных серверу и для возвращения их с сервера во время Socket-соединения. Метод connect устанавливает Socket-соединение с портом сервера. Метод send посылает XML объект на сервер, который указан в Socket-соединении.

При использовании метода connect, Flash Player открывает TCP/IP соединение с сервером и не закрывает его до тех пор, пока не произойдет одно из следующих событий:

Вызван метод close XMLSocket объекта.
Ссылок на XMLSocket объект больше не существует.
Flash Player прекратил работу.
Соединение прервано (например, отключился модем)

Следующий пример создает XML сокет-соединение и отсылает данные из XML объекта myXML. Для облегчения понимания, в скрипте встречаются комментарии, начинающиеся с символов //:

//Создаем новый XMLSocket объект
sock = new XMLSocket();
//Вызываем его метод соединения чтобы законнектиться с портом 1024
//сервера по этому урл
sock.connect("http://www.myserver.com", 1024);
//Определяем функцию назначенную для этого sock объекта, которая будет обрабатывать
//ответ сервера. Если соединение произошло, отсылаем myXML объект.
//Если что-то не получилось, выводим сообщение об ошибке в текстовом поле "msg"
function onSockConnect(success){
	if (success){
		sock.send(myXML);
	} else {
		msg="There has been an error connecting to "+serverName;
	}
}
//назначаем onSockConnect функцию для свойства onConnect
sock.onConnect = onSockConnect;

Дополнительную информацию смотрите в ActionScript словаре.