2008-09-16 1 views
3

Я ищу разработку Rails в качестве backend для приложения Flex и пытаюсь выяснить уровень связи между приложением Rails и Flash Player. Все, что я нахожу, предлагает использовать веб-службы SOAP для общения.Как разработчик Rails разговаривает с концами Flex?

Однако Flash поддерживает AMF, который является хорошим и быстрым (и родным). Есть ли способ связи через AMF с Rails-приложением, поддерживая все «приятные» вещи об AMF (автоматическое преобразование типов, перемещение данных и т. Д.).

ответ

3

Существует WebORB или RubyAMF, которые вы можете использовать для ответа в AMF от Rails, подходы для каждого из них немного разные, поэтому это зависит от ваших потребностей. RubyAMF обсуждается в заключительных главах книги Flexible Rails, которая является хорошим ресурсом при использовании Rails с Flex.

0

Существует плагин Rails под названием WebORB for Ruby on Rails, который использует удаленный доступ с AMF.

1

Вы не использовали бы веб-службы SOAP, а скорее «родные» веб-службы REST, которые являются родными в Rails. Книга, приведенная выше в DEFusion, на самом деле такова: как использовать FLEX-клиент в качестве front-end приложения Rails с использованием REST (что означает XML).

Протокол AMF в основном создан Adobe как двоичный протокол, позволяющий FLEX-интерфейсам общаться с CodeFusion и, конечно, приложениями Java-сервера. Это не бесплатно, кроме использования Adobe BlazeDS, для которой у вас на самом деле не будет большой поддержки. И тогда, конечно, вам нужно будет выбрать плагин, способный разговаривать с BlazeDS с использованием протокола AMF (опять же, см. Сообщения DEfusion) и полагаться на него.

Вы будете удивлены тому, насколько хорошо работает Direct Flex to Rails через REST, плюс вам не нужно полагаться на сторонние. Я бы порекомендовал вам попробовать.

Надеется, что это помогает

2

я в середине написания рельсов/Flex приложения и мы переходим к использованию связи JSON в рамках REST. Простые HTTP-запросы со стороны Flex, обрабатывающие ответы JSON, как лучший способ разделить клиент и сервер. XML так же прост.

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

1

Пойдите с RubyAMF, если вы хотите, чтобы взаимодействие стиля MVC с контультерами могло отвечать/генерировать AMF.

Используйте WebOrb для любого другого стиля, включая прямой доступ к объектам модели.

0

Вы можете использовать WebORB или RubyAMF, или просто простые XML-Rails довольно умны, когда дело доходит до XML, с несколькими исправлениями здесь и там.

Мы используем XML, чтобы говорить между нашими приложениями Rails и нашим веб-приложением Flex, почти исключительно. Это довольно просто.

Для получения данных из вашего приложения Rails просто создайте HTTPService с result_type e4x и вызовите ваш url. В контроллере рельсов сделайте что-нибудь вроде:

def people 
    render :xml => Person.all.to_xml 
end 

Иногда Rails добавляет тег в конец.Если это произойдет, измените контроллер:

def people 
    render :xml => Person.all.to_xml.target! 
end 

Если вы хотите отправить данные в приложение Rails, это так же легко ..

<mx:HTTPService id="theservice" url="http://localhost:3000/svc/add_person" method="POST"> 
<mx:request> 
    <person> 
    <first>Firstname</first> 
    <last>Lastname</last> 
    </person> 
</request> 
</HTTPService> 

и в контроллере:

def add_person 
    p=Person.create(params[:person]) 
    render :xml => {:result => "Success"}.to_xml.target! 
end 
  • Кевин
1

Я создал приложения, используя все три метода (WebOrb, RubyAMF, REST) ​​...

WebOrb for Rails в значительной степени мертв, он не обновлялся в какой-то момент. Тем не менее, я смог создать немного магии Flex/Ruby, которая делает доступ к Flex доступным для объектов модели Rails прозрачным ... если вам интересно, я выкопаю его и отправлю его вам.

RubyAMF хорош, но не такой гибкий (ha!) Как WebOrb.

ОТДЫХ, возвращающий JSON, является оснасткой, и если мне нужно построить еще один из них (надеюсь, нет), это то, что я буду продолжать использовать.

YMMV.

Смежные вопросы