Подключение сокета через прокси в ActionScript 3 - PullRequest
1 голос
/ 08 августа 2009

1) Как бы я подключился через прокси, если я использую класс Socket для подключения к серверу?

2) Если я запускаю свое приложение Flex через Flash Player в веб-браузере, и мой веб-браузер настроен на использование прокси-сервера, выполняется ли через сокет соединение через прокси автоматически?

В идеале, я бы хотел, чтобы не зависело от настроек веб-браузера и могло программно проксировать соединение из моего собственного кода. Поддерживая прокси-серверы напрямую, я могу скомпилировать его как настольное приложение AIR и при этом поддерживать прокси-соединение. Кроме того, могут быть случаи, когда к разным прокси-серверам потребуется создать более одного сокетного соединения.

Использование Action Script 3 в Flex Builder 3.

Спасибо.

Ответы [ 3 ]

6 голосов
/ 17 августа 2009

Возможно, вы не сможете сделать это с классом vanilla Socket, но прочтите эту статью Кристиана Кантрелла из Adobe ( версия кэша Google ) о специализированном сокете класс, который он написал, чтобы разрешить «TCP-сокеты через HTTP-прокси в соответствии с RFC 2817». Его класс с победным именем RFC2817Socket.as ( github ) используется Open Flash Chart. Как отмечает Кристиан в своем посте, есть некоторые предостережения, и они могут не сработать, если ваш сервер не поддерживает RFC 2817, или если есть некоторые другие условия, которые не выполняются.

Обратите внимание, что в Windows проигрыватель Flash Player использует настройки прокси-сервера IE и игнорирует настройки используемого вами браузера.

2 голосов
/ 08 августа 2009

Я посмотрел, и не представляется возможным сделать именно то, что вы хотите сделать. Если у вас есть контроль над сервером, вы можете самостоятельно направлять запросы через сервер ... и Adobe имеет примеров этого, используя свои службы Flex Data Access (BlazeDS и LiveCycle) для прохождения через прокси-сервер. Опять же, если вы контролируете свой собственный сервер, вы можете получить его на прокси-сервер в любом случае ...

Но я боюсь, что в любом случае нет прямой установки прокси на стороне клиента с помощью ActionScript.

Что касается Flash, уважающего прокси-серверы браузера, я не могу сказать, что знаю из первых рук, но результаты поиска не очень хорошие. Вот статья, в которой утверждается, что flash не будет использовать настройки прокси вашего браузера для SOCKS в Linux и предлагает вам изменить ваши iptables. Существует также отчет об ошибке Adobe , предполагающий, что он не работает по крайней мере для подключений rtmp. Другие неофициальные данные свидетельствуют о том, что он работает иногда (для HTTP-запросов) для некоторых браузеров.

Так что, если вам нужно гарантировать, что соединение проходит через прокси, похоже, вам нужно будет направлять ваши запросы через сервер и прокси оттуда.

0 голосов
/ 17 августа 2009

Вы не можете сделать это с обычным прокси HTTP или SOCKS. Flex разделяет настройки подключения браузера. Но вы все равно можете обойти это, используя то, что они называют PHP Proxy , в основном веб-сайт, который загружает другие веб-сайты и передает результат вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...