Flex3. Сокетные соединения (Socket connections) Часть 1

    Раньше здесь была другая статья, но я её случайно затёр. Приношу свои извинения тем кто попал на эту страницу в надежде найти здесь информацию по JQuery Dialog. Хотя, если копия не сохранилась в сети… Значит статья была так себе :)

    Хочу предложить всем желающим мой перевод документа из официальной документации по Adobe Flex 3 — Socket connections (Сокетные соединения)

    Вторая часть здесь Flex3. Сокетные соединения (Socket connections) Часть 2

    Сокетные соединения


    Существует два типа сокетных соединений доступных в Action Script 3.0: сокетные соединения XML (XML Sockets) и бинарные (двоичные) сокетные соединения. XML сокет позволяет подключиться к удалённому серверу и создать соединение которое будет оставаться открытым до тех пор пока оно явно не будет закрыто (Одним словом имитирует постоянное соединение с сервером). Это позволяет передавать XML данные между сервером и клиентом, без необходимости постоянно открывать новое соединение. Другое преимущество от использования сервера на основе XML сокетов, состоит в том что пользователю не нужно постоянно посылать запросы для получения данных с сервера. Для передачи данных с сервера вам не нужно дожидаться запроса от клиента, и вы можете немедленно разослать данные каждому клиенту подключенному к серверу.

    Бинарные сокеты чем-то похожи на XML сокеты, и отличаются лишь тем, что для обмена данными между клиентом и сервером они не используют специальные XML пакеты. Вместо этого, данные передаются в двоичном (бинарном) виде.

    Класс Socket

    Представленный в ActionScript 3.0 класс Socket позволяет создавать сокет-соединение, для чтения и записи необработанных двоичных данных.
    Он похож на класс XMLSocket, но не позволяет задавать формат получаемых и передаваемых данных. Класс Socket
    полезен при взаимодействии с серверами которые использую бинарные (двоичные) протоколы. Используя соединения двоичных сокетов, вы можете написать код который позволял бы взаимодействовать по различным интернет протоколам, таким как POP3, SMTP, IMAP, и NNTP. А, это позволит Flash Player'у подключаться к почтовым и новостным серверам.

    Класс Socket наследует все методы описанные в интерфейсах IDataInput и IDataOutput (находящиеся в пакете flash.utils), эти методы используются для чтения и записи из сокета.

    Класс XMLSocket


    ActionScript содержит встроенный класс XMLSocket, который позволяет создавать непрерывное соединение с сервером. Этот тип соединения устраняет задержку возникающую при постоянном опросе сервера и в основном используется в приложениях реального времени, таких как чат или многопользовательские игры.
    В основе традиционной реализации HTTP-ориентированного чата, лежит постоянный опрос сервера с определённой частотой и загрузкой новых сообщений, с помощью HTTP запроса. В отличии традиционного решения, чат на основе XML сокета, поддерживает постоянное открытое соединение и позволяет серверу немедленно отправить входящие сообщения не дожидаясь запроса от клиента.

    Для создания сокет-соединения, необходимо создать серверное приложение (сервер, одним словом), которое будет ожидать запрос на соединение и возвращать ответ SWF приложению (файлу). Серверное приложение данного типа может быть написано с использование таких языков программирования как Java, Python или Perl. Для использования класса XMLSocket, на стороне сервера (компьютер-сервер) необходимо запустить демона (программу работающую в фоновом режиме) понимающего протокол который использует XMLSocket.

    Требования предъявляемые к протоколу:
    1. XML сообщения посылаются в течение полного дуплекса TCP/IP потока сокет-соединения.
    2. Каждое XML сообщение должно являться полноценным XML документом, и завершаться нулевым байтом.
    3. В рамках одного сокет-соединения XML может быть принято и отправлено неограниченное кол-во XML сообщений.

    Примечание: класс XMLSocket не может автоматически проложить туннель через файервол, поскольку, в отличие от Real-Time Messaging Protocol (RTMP) ( Протокол Сообщений Реального Времени), XML сокет не поддерживает HTTP туннелирование. Если вам нужно HTTP туннелирование, как вариант вместо XMLSocket можно использовать Flash Remoting и Flash Media Server (которые поддерживают RTMP).

    Возможные ограничения при использовании XMLSocket при подключении к серверу:
    • XMLSocket.connect () может подключаться только к TCP порту номер которого больше или равен 1024. Одним из следствий этого ограничения является то, что демоны запущенные на сервере, и которые взаимодействуют с объектом XMLSocket также должны иметь номер порта больше или равна 1024. Порты с номерами ниже 1024 используется системой, для таких служб как FTP (21), Telnet (23), SMTP (25), HTTP (80) и POP3 (110), XMLSocket запрещено использовать номера этих портов по соображениям безопасности. Ограничение номера порта снижает возможность несанкционированного доступа к этим ресурсам.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 9

      0
      А ссылки на пример нет?
      0
      у меня картинки не грузятся с примерами )
        0
        Вы просто не представляете как вовремя вы решили помочь переводом )
          0
          я очень рад )
          0
          это только у меня окна закрываются при только при повторном клике на крестик? сижу в FF 3.0.10.
            0
            это косяк demo страницы, там два окна открывается. да и вообще она как-то криво сделана
            0
            юзаю! Советую всем любителям jQ
            Последний набор UI даже очень ничего, кроме датПикера (могли бы и время встроить, и еще он под BODY DIV пихает, приходится маргинить чтоб верстку не таращило)))
            Диалог отличный получился, но и в нем есть минус, а точнее во всем UI — при «затемнении контента» вырубается конечно все (флеш, селекты), но при использовании JW FLV этот трюк не катит.
              0
              Хайдать селекты и флеш — пожалуй единственный способ разместить слой поверх них (IE).
              Если знаете еще какие решения этой проблемы, напишите пожалуйста. С указанием размера фикса.

            Only users with full accounts can post comments. Log in, please.