Пакет | flash.net |
Класс | public class XMLSocket |
Наследование | XMLSocket ![]() ![]() |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Настройка сервера на взаимодействие с объектом XMLSocket может вызвать определенные трудности. Если вашему приложению не требуется обмен данными в режиме реального времени, вместо класса XMLSocket можно использовать класс URLLoader.
Для того чтобы использовать методы класса XMLSocket, необходимо сначала создать объект XMLSocket с помощью конструктора new XMLSocket
.
SWF-файлам в изолированной программной среде, локальной для файловой системы, запрещено использовать сокеты.
Файлы политик сокетов на целевом узле определяют узлы, с которых SWF-файлы могут создавать подключения к сокетам, а также порты, доступные для таких подключений. В нескольких последних версиях Flash Player были ужесточены требования по безопасности относительно файлов политик сокетов. Компания Adobe рекомендует использовать файл политик для сокетов для всех версий Flash Player, а в некоторых случаях его применение является обязательным. Поэтому, если используются объекты XMLSocket, проследите, чтобы целевой узел при необходимости предоставлял файл политик для сокетов.
В следующем списке приводятся все требования к файлам политик сокетов для разных версий Flash Player.
Дополнительные сведения о безопасности см. в следующих ресурсах.
См. также
Свойство | Определено | ||
---|---|---|---|
connected : Boolean [только для чтения]
Определяет, подключен ли в настоящий момент данный объект XMLSocket. | XMLSocket | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
timeout : int
Указывает время ожидания подключения в миллисекундах. | XMLSocket |
Метод | Определено | ||
---|---|---|---|
Создает новый объект XMLSocket. | XMLSocket | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях. | EventDispatcher | |
Закрывает подключение, заданное объектом XMLSocket. | XMLSocket | ||
Создает подключение к заданному узлу в Интернете на указанный порт TCP. | XMLSocket | ||
![]() |
Передает событие в поток событий. | EventDispatcher | |
![]() |
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
Преобразует объект XML или данные, заданные параметром object, в строку, за которой следует нулевой байт (0), и передает ее на сервер. | XMLSocket | ||
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
Отправляется, когда сервер закрывает подключение к сокету. | XMLSocket | |||
Отправляется после успешного вызова метода XMLSocket.connect(). | XMLSocket | |||
Отправляется после отправки или получения необработанных данных. | XMLSocket | |||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным. | EventDispatcher | ||
Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою операции отправки или получения. | XMLSocket | |||
Отправляется, если путем вызова метода XMLSocket.connect() предпринимается попытка подключения к серверу, лежащему за пределами изолированной среды вызывающего объекта, или к порту с номером, меньшим 1024. | XMLSocket |
connected | свойство |
connected:Boolean
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, подключен ли в настоящий момент данный объект XMLSocket. Для того чтобы также проверить успешность подключения, можно зарегистрироваться на получение события connect
и события ioError
.
public function get connected():Boolean
См. также
timeout | свойство |
timeout:int
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Указывает время ожидания подключения в миллисекундах.
Если подключение не будет установлено в течение заданного срока, попытка завершается ошибкой. Значение по умолчанию 10,000 (десять секунд).
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Конструктор |
public function XMLSocket(host:String = null, port:int = 0)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает новый объект XMLSocket. Если не указаны никакие параметры, создается первоначально отключенный сокет. Если параметры указаны, производится попытка подключиться к указанному узлу и порту.
Примечание. Настоятельно рекомендуется использовать форму конструктора без параметров, затем добавить любые прослушиватели событий, после чего вызвать метод connect
с параметрами host
и port
. Это гарантирует парольную работу всех прослушивателей событий.
host:String (default = null ) — Полностью определенное имя домена DNS или IP-адрес в формате 111.222.333.444. Также можно указать null , чтобы подключиться к серверу узла, на котором размещен рассматриваемый SWF-файл. Если SWF-файл, инициирующий данный вызов, запущен в веб-обозревателе, то в параметре host должен указываться тот же домен, в котором находится SWF-файл.
| |
port:int (default = 0 ) — Номер TCP-порта на целевом узле, используемый для установки подключения. Для Flash Player 9.0.124.0 и более поздних версий на целевом узле должен быть файл политик для сокетов, разрешающий подключения к сокетам через указанный порт для узла, на котором размещен SWF-файл. Для более ранних версий Flash Player файл политик для сокетов является обязательным, только если требуется подключиться к порту с номером ниже 1024 или если SWF-файл находится не на том узле, к которому выполняется подключение.
|
См. также
close | () | метод |
public function close():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Закрывает подключение, заданное объектом XMLSocket. Событие close
отправляется только в том момент, когда сервер закрывает соединение. Оно не отправляется при вызове метода close()
.
См. также
connect | () | метод |
public function connect(host:String, port:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает подключение к заданному узлу в Интернете на указанный порт TCP.
Если для параметра host
указать значение null
, то обращение производится к тому узлу, на котором размещен SWF-файл, вызывающий метод XMLSocket.connect()
. Например, если SWF-файл загружен с www.adobe.com, то использование значения null
для параметра host указывает на то, что вы подключаетесь к сайту www.adobe.com.
Можно запретить использование SWF-файлом этого метода путем установки параметра allowNetworking
для тегов object
и embed
на странице HTML, содержащей SWF-содержимое.
Дополнительные сведения см. в следующих источниках.
Параметры
host:String — Полностью определенное имя домена DNS или IP-адрес в формате 111.222.333.444. Также можно указать null , чтобы подключиться к серверу узла, на котором размещен рассматриваемый SWF-файл. Если SWF-файл, инициирующий данный вызов, запущен в веб-обозревателе, то в параметре host должен указываться тот же домен, в котором находится SWF-файл.
| |
port:int — Номер TCP-порта на целевом узле, используемый для установки подключения. Для Flash Player 9.0.124.0 и более поздних версий на целевом узле должен быть файл политик для сокетов, разрешающий подключения к сокетам через указанный порт для узла, на котором размещен SWF-файл. Для более ранних версий Flash Player файл политик для сокетов является обязательным, только если требуется подключиться к порту с номером ниже 1024 или если SWF-файл находится не на том узле, к которому выполняется подключение.
|
securityError: — Операция подключения произвела попытку подключиться к узлу за пределами изолированной среды вызывающего объекта и/или используя номер порта ниже 1024. Любую из этих проблем можно обойти, поместив файл политик для сокетов на целевом узле. | |
data: — Отправляется после получения необработанных данных. | |
connect: — Отправляется после установления сетевого подключения. |
SecurityError — Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Чтобы обойти эту проблему, можно переклассифицировать данный SWF-файл как "local-with-networking" или доверенный.
| |
SecurityError — Нельзя указывать номер порта сокета выше 65535.
|
См. также
send | () | метод |
public function send(object:*):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Преобразует объект XML или данные, заданные параметром object
, в строку, за которой следует нулевой байт (0), и передает ее на сервер. Если в качестве object
используется XML-объект, строка является представлением XML-объекта в формате XML-текста. Операция отправки проходит в асинхронном режиме. Результат возвращается сразу же, но сами данные могут передаваться чуть позже. Метод XMLSocket.send()
не возвращает значение, определяющее, успешно ли прошла передача данных.
Если вы не подключите объект XMLSocket к серверу с помощью XMLSocket.connect()
), произойдет сбой операции XMLSocket.send()
.
Параметры
object:* — XML-объект или другие данные, которые необходимо передать на сервер.
|
IOError — Объект XMLSocket не подключен к серверу.
|
См. также
close | Событие |
flash.events.Event
flash.events.Event.CLOSE
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда сервер закрывает подключение к сокету. Событие close
отправляется только в том момент, когда сервер закрывает соединение. Оно не отправляется при вызове метода XMLSocket.close()
.
Event.CLOSE
определяет значение свойства type
объекта события close
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект, для которого разорвано подключение. |
connect | Событие |
flash.events.Event
flash.events.Event.CONNECT
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется после успешного вызова метода XMLSocket.connect()
.
Event.CONNECT
определяет значение свойства type
объекта события connect
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект Socket или XMLSocket, установивший сетевое подключение. |
data | Событие |
flash.events.DataEvent
flash.events.DataEvent.DATA
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется после отправки или получения необработанных данных.
Определяет значение свойстваtype
объекта события data
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
данные | Необработанные данные, загруженные в Flash Player. |
target | Объект XMLSocket, получающий данные. |
ioError | Событие |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою операции отправки или получения.
Задает значение свойстваtype
для объекта события ioError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, с которым произошла ошибка ввода/вывода. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
securityError | Событие |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, если путем вызова метода XMLSocket.connect()
предпринимается попытка подключения к серверу, лежащему за пределами изолированной среды вызывающего объекта, или к порту с номером, меньшим 1024.
SecurityErrorEvent.SECURITY_ERROR
определяет значение свойства type
для объекта события securityError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, сообщающий об ошибке безопасности. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
См. также
socket
и передает значение socket
методу ConfigureListeners()
(см. описание ниже), а затем вызывает метод connect()
XMLSocket, используя имя узла localhost и номер порта 8080
.configureListeners()
, добавляющий прослушивателей для каждого поддерживаемого события XMLSocket:
closeHandler()
: находится в ожидании события close
, которое отправляется после закрытия сетевого подключения.connectHandler()
: находится в ожидании события connect
, отправляется при установке сетевого подключения.dataHandler()
: находится в ожидании событий data
, отправляется каждый раз, когда XMLSocket получает новые данные.progressHandler()
: находится в ожидании событий progress
, отправляется после вызова send()
и в процессе отправки.securityErrorHandler()
: находится в ожидании событий securityError
, которые отправляются при выявлении попытки доступа к XMLSocket с применением неправильного параметра безопасности локального воспроизведения или при использовании номера порта ниже 1024.ioErrorHandler()
: находится в ожидании событий ioError
, которые могут возникнуть только при сбое операции по отправке или получению данных.Примечания.
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); } } }