Разочарован BlazeDS ... Есть ли способы обойти эти недостатки? - PullRequest
0 голосов
/ 28 января 2010

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

Я подумываю о переходе на использование JSON (как и в других частях приложения) по следующим причинам:

  • Распространение DTO для связи с flex. * (С JSON я просто использую JsonConfig для исключения свойств по желанию.)
  • Сложно отлаживать (тогда как JSON хороший старый текст).
  • Проблемы с балансировкой нагрузки без липких сессий.

Кто-нибудь еще сталкивался с этими проблемами с BlazeDS? BlazeDS стоит хлопот?

* Я мог бы использовать интерфейс Externalizable вместо отдельных DTO, но это тоже проблема.

1 Ответ

6 голосов
/ 28 января 2010

Я бы не отказался от использования удаленного доступа. Производительность удаленного взаимодействия будет намного лучше, чем JSON. Помните, что в ActionScript нет метода для декодирования JSON, поэтому вам нужно использовать библиотеку AS, которая будет работать медленнее, чем встроенная в проигрыватель. Вы бы лучше использовали XML, чем JSON.

Вы должны иметь возможность исключить определенные свойства по желанию, пометив их как переходные. ActionScript имеет метаданные [Transient], и идея пришла из Java. Библиотека C #, которую мы используем для удаленного взаимодействия, имеет временную поддержку. Я уверен, что BlazeDS тоже.

Отладка легко с правильными инструментами. Вы должны получить Чарльза. Он обеспечивает очень хорошие представления о запросах и ответных сообщениях AMF (если вы используете HTTP, а не RTMP, я не знаю об отладке RTMP).

http://www.charlesproxy.com/

Вы также, кажется, выбираете между BlazeDS и всем, что не является удаленным. У вас есть больше вариантов. BlazeDS - это только одна удаленная реализация, которую Adobe сделала доступной. У них также есть коммерческий. Есть также много открытых проектов удаленного взаимодействия. Мы используем замечательный для C # под названием фтор. Варианты Java с открытым исходным кодом: Red5 и OpenAMF, но я думаю, что есть и другие.

http://red5.org/

http://openamf.com/

Существует также различие между удаленным удаленным доступом RTMP и HTTP. Вы можете получать данные во Flex через любой из этих протоколов, и у каждого будут свои преимущества / недостатки. Я лично предпочитаю удаленное взаимодействие по протоколу HTTP, если вам абсолютно не нужны функции, предоставляемые RTMP (push, streaming). HTTP будет легче отлаживать, и у него не должно быть проблем с балансировщиком нагрузки - это просто HTTP-вызовы, когда содержимое оказывается двоичным.

...