Flex: вопрос обмена сообщениями между клиентом и сервером (RPC или сокет?) - PullRequest
0 голосов
/ 09 апреля 2010

Я создаю приложение Flex, которое будет выполнять много запросов к серверу (скажем, что почти все взаимодействия требуют обновления с сервера).

В данный момент я использую для этого удаленные вызовы процедур. Но мне было интересно, будет ли лучше использовать сокет.

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

Для моего демонстрационного приложения у меня есть только 1 клиент. Является ли количество клиентов, подключающихся к серверу, фактором для этого выбора?

спасибо

1 Ответ

0 голосов
/ 10 апреля 2010

Если вы используете сокет (и практически создаете свой собственный сервер NIO, возможно, на основе Apache MINA), можно получить повышение производительности, но, на мой взгляд, вам придется вложить в это огромный объем работы. Я знаю некоторых людей, использующих этот подход, но для очень специфического приложения (флеш-игры, в которой должны были быть пользователи). Они тратят на это один месяц.

Другим решением (если вы планируете использовать сокеты) является использование некоторых продуктов, которые предлагают каналы RTMP (LCDS, WebOrb), но они не бесплатны и, на мой взгляд, не стоят того, если вы планируете использовать их только для RPC вызывает сокет.

В большинстве случаев подход RPC, основанный на POST, должен быть достаточно хорошим. Сериализация AMF довольно компактна (я написал здесь небольшой тест, и вы можете найти другие ресурсы в сети).

Также Flash Player отправляет ваш запрос RPC в одном пакете - например, если вы вызываете в своем коде Flex 3 метода один за другим, все они будут сгруппированы только в одном вызове POST.

...