Сокет ActionScript в Android - PullRequest
       37

Сокет ActionScript в Android

1 голос
/ 28 января 2012

У меня есть клиентское приложение Flash, написанное на ActionScript, которое использует класс XMLSocket для связи с устройством сервера через TCP / IP через порт 5750. Так, например, я могу запустить клиент Flash в браузере и подключиться ксервер, который находится в Интернете.

Поскольку последние версии Android поддерживают Flash, я ожидаю, что это сработает, когда мы установим Flash-клиент на устройство Android.Однако попытка подключения просто зависает.У меня в настоящее время нет диагностики на стороне клиента, только работающее приложение Flash.Таким образом, у нас нет журналов или стандартных сообщений об ошибках.

Серверное устройство - это, по сути, черный ящик, но кажется очевидным, что сервер никогда не получает запрос от клиента.Это говорит о том, что клиент не смог открыть сокет.

Базовый веб-поиск показывает, что об этой ситуации известно немного.Есть мысли о том, что здесь не так?

Например, может быть, XMLSocket просто не работает в Android?Или Android блокирует порт 5750?Или в Flash Player встроены какие-то ограничения для «песочницы» или брандмауэра?

Мы пробовали пару разных устройств Android под управлением Android 2.2-2.3 и Android Flash Player 10-11.Клиент написан на ActionScript 2.

1 Ответ

1 голос
/ 09 марта 2012

Вероятно, это проблема настроек безопасности .

Я полагаю, ваш Flash-клиент, работающий на устройстве Android, не находится в том же домене, что и сервер.Справочник Adobe AS2 говорит обо всем:

Метод XMLSocket.connect () может подключаться только к компьютерам в том же домене, где находится SWF-файл.Это ограничение не распространяется на SWF-файлы, работающие на локальном диске.(Это ограничение идентично правилам безопасности для loadVariables (), XML.sendAndLoad () и XML.load ().) Для подключения к демону сервера, работающему в домене, отличном от того, в котором находится SWF, Вы можете создать файл политики безопасности на сервере, который разрешает доступ из определенных доменов .

Настройка сервера для связи с объектом XMLSocket может быть сложной задачей .Если вашему приложению не требуется интерактивность в реальном времени, вместо функции XMLSocket используйте функцию XML-сервера на основе Flash HTTP (XML.load (), XML.sendAndLoad (), XML.send ()) или функцию loadVariables ().учебный класс.Чтобы использовать методы класса XMLSocket, вы должны сначала использовать конструктор, новый XMLSocket, для создания объекта XMLSocket.

Есть несколько других связанных с этим проблем, на которые стоит обратить внимание.:

XMLSocket работает в Firefox, но не в IE

Flash-клиент XMLSocket не подключается к серверу

...