улучшить время подключения сокета AS3 - PullRequest
0 голосов
/ 05 августа 2011

У меня есть небольшая клиентская сборка во флэш-памяти (AS3), которая подключается к серверу с помощью класса Socket.

Все работает очень быстро, когда я тестирую SWF из флэш-редактора (CRTL + ALT + Enter), но когда я встраиваю swf в html-страницу, время соединения составляет около 2-3 секунд, что, на мой взгляд, очень много.

Я знаю, что когда я встраиваю flash в html-страницу,Требовать принять политику сокетов, прежде чем разрешить мне подключиться к серверу, однако я понял, что получаю запрос политики только через 1 секунду после загрузки флэш-памяти.

Для загрузки файла политики, который я использую:

Security.loadPolicyFile("xmlsocket://" + host + ":" + 16500);

Итак ... мой вопрос может стать (я не уверен на 100%, если это проблема), как я могу ускорить запрос политики.Кто-то сказал на форуме (что я нашел в Google), что политика отправляется только тогда, когда я хочу отправить сообщение на сервер.

Знаете ли вы что-нибудь об этом?

Спасибо.

1 Ответ

2 голосов
/ 05 августа 2011

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

Итак, как вы видите, здесь много накладных расходов. Самая большая нагрузка - две попытки подключения.
Когда вы встраиваете SWF-файл в веб-страницу и получаете к нему доступ через Интернет, возникает больше проблем. С поиском DNS и, конечно, ограничения подключения.

Так со всем, что говорится. Я могу думать только о 2 вещах, которые могут вам помочь.
Сначала изучите, как работают основные файлы политики, и загрузите его, как только SWF начнет работать.
А во-вторых, изучите различные протоколы, которые поддерживает Socket Class.
Может быть, есть более быстрый, который больше подходит для вас.
Я не могу предложить один, потому что вы не указали, что вам нужно для сокета и какой протокол вы используете в настоящее время.

...